gpt4 book ai didi

java - 跨站点脚本 : Poor Validation (Input Validation and Representation, 数据流)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:54 25 4
gpt4 key购买 nike

我在 HP fortify 门户中扫描了我的应用程序,发现跨站点脚本编写问题:验证不佳(输入验证和表示、数据流)。

我已经在使用 ESAPI 库了。

我应该怎么做才能解决这个问题。是否有任何其他库/jar 来验证输入。

提前致谢。

最佳答案

Fortify“跨站点脚本:验证不佳”提示您的 OUTPUT 编码不正确或无效。输出编码(转义)的目的是将特殊字符(元字符)限制为文字字符串,因此它们不能作为命令执行。

要补救,您需要:

第 1 步。 确定谁将使用此“待编码上下文”?

第 2 步。根据交付协议(protocol)和下游需求正确编码上下文。例如:

  • 如果在 URL 的 [?query] 部分使用数据,您需要找到一个函数来包装(也称为编码、转义)18 个保留字符 (! * ' () ; : @ & = + $ ,/?#[]) 对 HTTP 协议(protocol)有特殊意义(不必对整个 URL 进行编码)。 (阅读 RFC3986 Sec 2.2 了解详情)
  • 如果数据作为 XML 实体使用,您需要编码 5 个元字符 (& < > "')(检查 W3C XML Spec Sec 2.4 )。但是,这并不总是正确的。用作注释的数据,处理指令,或 CDATA 部分不需要编码。

Step#3. 收集编码示例以供将来选择和使用:(抱歉,当以代码形式发布时,某些内容已更改,因此以图像形式发布)

need to consider overhead of ESAPI library, is it worth to load 30 MB jar for one fix?
enter image description here

enter image description here

Output encoding using light weight org.owasp.encoder library

enter image description here

关于java - 跨站点脚本 : Poor Validation (Input Validation and Representation, 数据流),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35355578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com