1

我从我的数据库加载了很多 JavaScript 进行验证和服装验证,可以通过我的客户上传,所以我想验证给定的 JavaScript 是否有效,同时在我的页面上渲染它时我正在使用 MVC 3.0 razer 视图引擎

请帮我找到解决方法

谢谢阿什

4

3 回答 3

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

于 2013-01-04T10:27:47.327 回答
1

我假设您正在使用 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

于 2013-04-11T10:03:33.280 回答
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
    }
};
于 2013-01-04T10:39:54.177 回答