我试图处理这种可能的漏洞,并想知道最好的方法是什么?我应该使用apache的common-validator并创建一个已知允许符号列表并使用它吗?
答案 0 :(得分:1)
通用解决方案是在将字符串包含到HTTP标头(如Location或Set-Cookie)之前对其进行URL编码。
清理的典型示例包括转换为整数或积极的正则表达式替换。值得注意的是,尽管这不是PHP特定的问题,但PHP解释器包含自版本4.4.2和5.1.2以来针对此攻击的保护。
修改强>
我喜欢使用jsp的java动作!
似乎没有针对此攻击媒介的任何基于JSP的保护 - 网络上的许多描述都假定为asp或php,但this link描述了一种解决问题的平台中立方式(jsp使用)作为偶然的例子)。
基本上,您的第一步是识别潜在的危险字符(CR,LF等),然后将其删除。我担心这个问题就像你希望的那样强大!
<强>解决方案强>
验证输入。在将数据嵌入任何HTTP响应标头之前,删除CR和LF(以及所有其他危险字符),尤其是在设置cookie和重定向时。可以使用第三方产品来防御CR / LF注入,并在应用程序部署之前测试是否存在此类安全漏洞。
答案 1 :(得分:0)
Use PHP? ;)
根据维基百科和PHP CHANGELOG的说法,自4.4.2以来,PHP在PHP4中得到了保护,自5.1.2以来就是PHP5。
只是略过了它 - 但是,this might help。他的例子是用JSP编写的。
答案 2 :(得分:0)
好吧,在读取字符串时,使用正则表达式并没有太多用处,在每个从浏览器收到输入的操作中使用正则表达式都可能很麻烦,我正在寻找更强大的解决方案