【问题标题】:How to prevent XSS in Asp.NET如何在 Asp.NET 中防止 XSS
【发布时间】:2012-05-08 22:44:23
【问题描述】:

可以使用哪些技术来防止在 asp.net 中执行跨站点脚本?是否有任何非现成的实现可用于实现网站免受 xss 攻击?

【问题讨论】:

    标签: asp.net xss security cross-site


    【解决方案1】:

    我们为此做了很长时间的内部开发,但最终微软为它提供了一个库。我们现在用这个完全替换了我们的库。它可以简单地使用如下:

    string sanitizedString = Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(string myStringToBeChecked);
    

    此方法的唯一问题是它会修剪多个用行尾字符分隔的空格。如果您不希望这种情况发生,您可以考虑先根据行尾字符 (\r\n) 拆分字符串,然后计算这些拆分字符串前后的空格数,应用消毒剂,将空格追加并连接.

    除此之外,Microsoft 库工作正常。

    【讨论】:

    • 不幸的是,AntiXSS.GetSafeHtmlFragment() 在旧版本中变得易受攻击而在最新版本(v. 4.2.1)中变得无用 - 现在它几乎去除了所有可能的 HTML 标签并变得无法使用:(跨度>
    【解决方案2】:

    微软的反跨站脚本库是一个好的开始。它有一些有用的辅助方法来防止 XSS。它现在是更大的Microsoft Web Protection Library 的一部分

    【讨论】:

      【解决方案3】:

      保护跨站脚本攻击的方法如下。

       1.  Use HtmlEncoding while saving the input content that is received from web  application controls usch as textbox etc.
       2.  Use InnerText instead of InnerHtml while displaying data on the page.
       3.  Do the input sanitization before saving the data into database.
      

      【讨论】:

        猜你喜欢
        • 2020-06-15
        • 1970-01-01
        • 1970-01-01
        • 2020-08-28
        • 1970-01-01
        • 2011-10-26
        • 2015-02-18
        • 2017-08-25
        • 2012-10-28
        相关资源
        最近更新 更多