问题描述
HTTP响应拆分缺陷,当调用一个存在该缺陷的请求时,很容易受到攻击,将不受信任的内容写入HTTP请求头中,导致缓存中毒和跨站点脚本攻击。
解决方案
1、输入校验
注意规范构建 HTTP 请求头,避免使用未经验证的输入数据,对构建内容进行合法校验,如:设定编码规范(UTF-8)、创建黑名单过滤特殊符号(如"\n", “\r”)、封装Url请求等等。
2、使用 ESAPI 库修复
ESAPI是一个免费、开源的Web应用程序安全控制组件,对常见安全漏洞都提供对应的安全控制实现方法。
2.1 引入 ESAPI 依赖
<!-- https://mvnrepository.com/artifact/org.owasp.esapi/esapi -->
<dependency>
<groupId>org.owasp.esapi</groupId>
<artifactId>esapi</artifactId>
<version>2.2.0.0</version>
</dependency>
2.2 通过ESAPI设置请求头
ESAPI.httpUtilities().setHeader(response, "requestId", requestId);
参考资料:
CWE – https://cwe.mitre.org/data/definitions/113.html
stackoverflow – https://stackoverflow.com/questions/55705862/improper-neutralization-of-crlf-sequences-in-http-headers
OWASP Enterprise Security API (ESAPI) – https://owasp.org/www-project-enterprise-security-api/
本文介绍了CWE ID 113,即HTTP响应拆分缺陷,它可能导致缓存中毒和跨站脚本攻击。为解决此问题,建议进行输入校验,如设定编码规范、过滤特殊符号,并推荐使用ESAPI库进行安全控制,通过引入依赖并设置请求头来增强HTTP头的安全性。

5553

被折叠的 条评论
为什么被折叠?



