验证JavaScript

时间:2013-01-04 10:19:36

标签: javascript sql asp.net-mvc

我从我的数据库中加载了大量的JavaScript用于验证和可以通过我的客户上传的服装验证,所以我想验证给定的Javscript是否有效或者在我的页面上呈现它时我使用的是MVC 3.0 razer视图发动机

请帮我找到解决方法

由于 Ashies

3 个答案:

答案 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
    }
};