【问题标题】:XSS Value in Input Tag输入标签中的 XSS 值
【发布时间】:2014-12-18 14:44:09
【问题描述】:

我正在寻找一些关于保护我的代码免受漏洞影响的建议。以下是我有疑问的两行。

<input type="hidden" name="criteria" value="" />
<input type="hidden" name="search" value="0" />

使用 IBM 的 App Scan 扫描代码,结果显示测试能够将脚本 (XSS) 注入参数“条件”和“搜索”。我在网上找到了一些这样的例子(标签内),但没有看到一个可靠的解决方案。根据这些信息,清理值以防止 XSS 的最简单方法是什么?

【问题讨论】:

  • 测试指出条件和搜索可以包含任何内容,而不仅仅是良性空白和 0。可以消除条件和搜索字段或将其保存为会话变量,而不是将其推到形式?
  • 很可能,没有。如果不需要的话,我不想过多地更改代码 - 只需进行错误修复。有没有简单的方法来保护这两个输入?

标签: coldfusion xss


【解决方案1】:

您正在寻找问题的错误结局。您向我们展示的只是您有一个包含一些表单字段的表单。这不是问题。

是什么 问题在于,如果有表单……就必须有表单提交。您将拥有一些接收表单提交并对其进行处理的过程。 “用它做点什么”的一部分可能应该是“从 XSS 注入中清除它”。

您如何处理这件事取决于您被审核的原因,以及他们要求您对此类事情的防范程度。

首先要做的最简单的事情是在 CFAdmin 的设置中启用“启用全局脚本保护”。那只是一个复选框。我不知道这有多全面或实施得有多好,但这可能是您安抚审计所需要的全部内容。

其次...您的 WAF 应该自动阻止此类事情。如果您没有 WAF,请购买一个。 Foundeo do FuseGuard,我从未使用过,但希望它会非常好,因为 Foundeo 团队知道他们在做什么,而且它也是一个特定于 CFML 的解决方案。

第三:解决您的代码。这可以像拦截所有入站表单、URL、CGI 和 cookie 值一样简单,并确保它们中没有 XSS 向量。这里的基本级别是禁止将带有&lt;script&gt; 块的任何内容传递给您的应用程序。但是,您需要做的比这更全面,并且超出了 StackOverflow 问答的范围。去看看 OWASP 团队对 XSS 缓解有什么看法。从这里开始:“Cross-site Scripting (XSS)”。

如果您要实现 PCI 合规性,您可能必须所有三个。即使前两个中的任何一个都应该没问题。 PCI 不是要明智,而是 PCI 审计员向您勒索钱财。所以你有点同意他们所说的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多