如何确保网站安全检查

时间:2010-02-16 04:31:25

标签: security web xss

如何保护表格免受脚本注入攻击。这是攻击者试图通过表单字段注入JS脚本的最常用攻击形式之一。此案例的验证必须检查表单字段中的特殊字符。寻找 互联网/ jquery等的建议,推荐和允许的字符和 字符掩码验证JS代码。

6 个答案:

答案 0 :(得分:1)

您可以使用 HTML Purifier (如果您使用的是PHP,或者您可能拥有其他选项),以避免 XSS (cross-site-scripting) < / strong>攻击到很高的水平但记住没有解决方案是完美的或100%可靠的。这应该可以帮助你并始终记住服务器端验证总是最好的,而不是依赖于javascript哪些坏人可以绕过轻松禁用javascript。

对于 SQL Injection ,您需要从可用于操作或注入查询的查询中转义无效字符,并对要插入的所有值使用类型转换数据库。

请参阅 Security Guide 以获取更多安全风险以及如何避免这些风险。请注意,即使您没有使用PHP,安全性的基本思想也是一样的,这可以让您更好地了解安全性。

答案 1 :(得分:1)

如果您在html上下文中输出用户控制的输入,那么您可以在处理输入(html净化,自定义输入验证)和/或html在输出之前对值进行编码时跟踪其他人并进行消毒。

htmlencodng / strip标签(不需要标签)的情况是不够的:

  1. 用户输入出现在属性中然后取决于你是否总是(双)引用属性或不是(坏)
  2. 用于on *处理程序(例如onload =“..),然后html编码是不够的,因为在html解码后调用javascript解析器。
  3. 出现在javascript部分 - 取决于是否引用(htmlentity编码不充分)或不引用区域(非常糟糕)。
  4. 以json的形式返回,可以进行评估。需要javascript转义。
  5. 出现在CSS中 - css转义是不同的,css允许javascript(表达式)

    此外,这些不会解释浏览器漏洞,例如不完整的UTF-8序列漏洞利用,内容类型嗅探攻击(UTF-7漏洞)等。

    当然,您还必须处理数据以防止其他攻击(SQL或命令注入)。

答案 2 :(得分:1)

可能最好的参考是OWASP XSS Prevention Cheat Sheet

答案 3 :(得分:0)

ASP.NET有一个名为Request Validation的功能,可以防止服务器处理未编码的HTML。为了获得额外保护,可以使用AntiXSS library

答案 4 :(得分:0)

您可以通过编码 html内容(例如

)来阻止脚本注入

<强> Server.HtmlEncode(输入)

答案 5 :(得分:0)

还有OWASP EASPI