1

我正在尝试处理这种可能的漏洞,并想知道最好的方法是什么?我应该使用 apache 的 common-validator 并创建一个已知允许符号列表并使用它吗?

4

3 回答 3

1

来自维基百科文章

通用解决方案是在包含到 HTTP 标头(例如 Location 或 Set-Cookie)之前对字符串进行 URL 编码。

清理的典型示例包括强制转换为整数或积极的正则表达式替换。值得注意的是,虽然这不是 PHP 特有的问题,但 PHP 解释器从 4.4.2 和 5.1.2 版本开始就包含针对这种攻击的保护。

编辑

我将 jsp 与 java 操作联系在一起!

似乎没有针对此攻击向量的任何基于 JSP 的保护 - 网络上的许多描述假设为 asp 或 php,但此链接描述了一种相当平台中立的方法来解决问题(jsp 用作其中的一个附带示例)。

基本上,您的第一步是识别潜在危险字符(CR、LF 等),然后将其删除。恐怕这与您希望的一样强大的解决方案!

解决方案

验证输入。在将数据嵌入任何 HTTP 响应标头之前删除 CR 和 LF(以及所有其他危险字符),尤其是在设置 cookie 和重定向时。可以使用第三方产品来防御 CR/LF 注入,并在应用程序部署之前测试此类安全漏洞的存在。

于 2008-10-03T12:33:11.380 回答
0

使用 PHP吗?;)

根据 Wikipedia 和 PHP CHANGELOG,PHP 在 PHP4 自 4.4.2 起和 PHP5 自 5.1.2 起具有针对它的保护。


只是略读了一遍——但是,这可能会有所帮助。他的示例是用 JSP 编写的。

于 2008-10-03T12:37:08.050 回答
0

好的,在读取字符串时,很好地转换为 int 并没有多大用处,在从浏览器接收输入的每个操作中也使用正则表达式可能会很混乱,我正在寻找一个更强大的解决方案

于 2008-10-03T12:38:09.360 回答