我从我的数据库加载了很多 JavaScript 进行验证和服装验证,可以通过我的客户上传,所以我想验证给定的 JavaScript 是否有效,同时在我的页面上渲染它时我正在使用 MVC 3.0 razer 视图引擎
请帮我找到解决方法
谢谢阿什
我从我的数据库加载了很多 JavaScript 进行验证和服装验证,可以通过我的客户上传,所以我想验证给定的 JavaScript 是否有效,同时在我的页面上渲染它时我正在使用 MVC 3.0 razer 视图引擎
请帮我找到解决方法
谢谢阿什
根本不推荐您的任务。直接从数据库渲染 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
我假设您正在使用 Visual Studio 2010/2012。
正如阿德里安萨拉查所说:
根本不推荐您的任务。直接从数据库渲染 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
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
}
};