Asp.net Javascript注入预防:从哪里开始?

Asp.net Javascript注入预防:从哪里开始?,asp.net,security,javascript-injection,Asp.net,Security,Javascript Injection,我正在开发一个新的网站(ASP.NET、web表单、C#),需要提供针对Javascript注入攻击的保护。有没有人有什么好的链接来帮助你实现一个安全的网站来抵御这些类型的攻击 谢谢您需要在您从客户那里读到的任何内容上部署适当的输入值 OWASP对此有一个很好的总结: 基本上,您需要建立一个白名单(通常是用户能够发送/提交到您的应用程序的所有内容的一些正则表达式),然后只接受白名单。一个好的做法是这样做,但基本上在白名单前面抛出一个黑名单,查找已知的不好的东西,如Javascript脚本标记,

我正在开发一个新的网站(ASP.NET、web表单、C#),需要提供针对Javascript注入攻击的保护。有没有人有什么好的链接来帮助你实现一个安全的网站来抵御这些类型的攻击


谢谢

您需要在您从客户那里读到的任何内容上部署适当的输入值

OWASP对此有一个很好的总结:

基本上,您需要建立一个白名单(通常是用户能够发送/提交到您的应用程序的所有内容的一些正则表达式),然后只接受白名单。一个好的做法是这样做,但基本上在白名单前面抛出一个黑名单,查找已知的不好的东西,如Javascript脚本标记,并拒绝它们(这是黑名单部分)。然后传递您在那里看到的内容,以确保您应该看到并且可以安全地处理的内容,并且只有在这些内容是安全的情况下才允许使用。

跨站点脚本(XSS)是您所关心的漏洞的名称。并谘询他们的意见


当你在那里时,浏览他们并考虑你需要保护的其他攻击/弱点。

如果白名单设计得很好,黑名单的目的是什么(毕竟,正则表达式过滤掉代码< >代码>标签通常很容易被击败)。如果事情明显不好,不要花时间在一个复杂的白名单上运行它们,这个白名单包含很多正则表达式和规则。黑名单应该非常小,只包括你知道的非常糟糕的事情,你永远不想看到(例如脚本标签)。还有一个用例,你会有一个全球黑名单(我的任何应用程序都不应该接受这些,因为它们非常危险)和一个每个应用程序的白名单(跟踪该应用程序可接受的输入)。啊,好吧,这基本上是为了性能,而不是安全。在这种情况下,它是有意义的,但只有在不影响程序对危险输入的鲁棒性的情况下,它才能被忽略。性能是一个很好的激励因素。我还将提交,它提供了对已知错误输入的双重检查,因此白名单实现中的错误不会让坏东西进来……这是一种深度防御措施,这总是一个好主意。我同意,防御层次越多越好;)