【问题标题】:How to use AntiXss in my Project?如何在我的项目中使用 AntiXss?
【发布时间】:2011-09-06 19:11:35
【问题描述】:

我想在我的 Web 应用程序中使用 AntiXss 库函数。我有一个 Web 应用程序,其中包含带有 Jquery 代码的 asp.net 页面。整个 asp.net 页面通过 Jquery js 页面运行。我想将编码功能应用于某些字段,但问题是如何应用以及在何处应用编码功能 - (在 jquery 页面中,在哪里设置值以显示在服务器端代码的输出窗口 0r 上,其中获取数据 API 调用在cs文件中。)以及在这种情况下使用哪个函数(HtmlEncode,JavascriptEncode等)

提前致谢

【问题讨论】:

    标签: c# jquery asp.net antixsslibrary


    【解决方案1】:

    防止 XSS 攻击背后的基本思想是,所有输入数据(来自用户或外部应用程序)都应被视为不受信任/不安全,因此必须在接受时进行验证和/或在输出中复制时进行编码 (html , js 等)。

    AFAIK,AntiXss 是一个服务器端库,因此您不能使用它来对浏览器中的值进行编码。在将这些值发送到客户端之前,您必须在服务器端应用编码(到 html/html 属性/JS 等)(例如,在 aspx 页面或 asmx/SCF 服务中,这些服务将数据发送到 java-script 将要处理的客户端)数据作为 html 或脚本)。

    查看此article - 尽管它已过时,但它仍然是开始使用 AntiXss 库的好资源,它还列出了在 "Determining Encoding Method to Use"

    下使用各种编码方法的场景

    【讨论】:

    • 我们应该在输入时对字段进行编码吗?保存 API 调用时,我们将值插入数据库中。这样做而不是在输出时这样做有什么影响?
    • @Girish,在典型的方法中,您可以验证输入(并在需要时拒绝)。是的,您可以选择对其进行编码,因此您的所有代码库都必须假定数据库中存在的任何值都不是 raw 而是编码的。有时这可能很麻烦 - 例如,假设您正在接受数学表达式(例如,a > b),现在在将其显示为 html 文字时,您需要对其进行编码,但要对其进行解析或将其分配给文本框进行编辑,你想要它原样。因此,如果您的数据库已编码输入,那么您必须针对这些场景对其进行解码。
    • @vinayc 我在 asp.net 4.0 中有一个现有的应用程序,我已经下载并安装了它。我是否需要对每个请求和响应进行编码。或者我可以将其设置为我的应用程序的默认编码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 2014-05-07
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 2020-09-06
    相关资源
    最近更新 更多