我从我的数据库中加载了大量的JavaScript用于验证和可以通过我的客户上传的服装验证,所以我想验证给定的Javscript是否有效或者在我的页面上呈现它时我使用的是MVC 3.0 razer视图发动机
请帮我找到解决方法
由于 Ashies
答案 0 :(得分:1)
根本不推荐您的任务。直接从数据库中呈现JavaScript代码是危险的,因为您对XSS攻击敞开大门。
但是,是的,您可以使用JSLint正常验证JSCode。
Visual Studio有一个插件,当然可能有一种方法可以使用JSLint DLL中包含的功能,因此您可以检查JavaScript。
这两个帖子可能会让你处于“正确”的方向。 (我仍然要说渲染用户输入的JS代码是根本错误的)
http://www.codeproject.com/Articles/21438/JSLint-VS-JavaScript-Verifier-for-Visual-Studio
http://blog.outsharked.com/2011/08/sharplinter-command-line-tool-for.html
答案 1 :(得分:1)
我假设您正在使用Visual Studio 2010/2012。
正如Adrian Salazar所说:
根本不推荐您的任务。直接从数据库中呈现JavaScript代码是危险的,因为您对XSS攻击敞开大门。
话虽如此,我强烈建议您重新考虑当前的设计。如果你打算这样做,你应该看看Web Essentials,这是一个可以从NuGet获得的插件。这已经集成了JSHint,它将在保存文件或在Visual Studio中构建应用程序后检查您的Javascript。
也可以安装程序下载:
http://visualstudiogallery.msdn.microsoft.com/6ed4c78f-a23e-49ad-b5fd-369af0c2107f
或2012年:
http://visualstudiogallery.msdn.microsoft.com/07d54d12-7133-4e15-becb-6f451ea3bea6
答案 2 :(得分:0)
Javascript语法检查很棘手,因为根据处理原语的方式(例如)有很多生成静默运行时错误的空间。
有像JSLint这样的验证程序,您可以构建自己的验证技术。
我对javasript文件使用以下结构(使用jquery)如果脚本完全运行,则在body标签上设置一个类(“scriptVerified”) - 这可以快速告诉您脚本在语法上是否正常。但事件处理程序在触发事件时仍然可能出错。
@ AdiranSalazar的安全警告值得倾听。
$(document).ready(function () {
pageScript.Init();
});
var pageScript =
{
Init: function()
{
pageScript.CleanUp();
pageScript.RegisterHandlers();
pageScript.Start();
pageScript.Final();
},
CleanUp: function()
{
//put page cleanup stuff in here
},
RegisterHandlers: function()
{
//register event handlers in here
},
Start: function()
{
//put page js code in here
},
Final: function () {
$("body").addClass("scriptVerified"); //add class to body to say this has run
}
};