java - java中的响应头验证

标签 java security http response split

我在我的响应 header 中直接传递了一个用户定义的参数。我了解到这不是一个好主意,因为用户可以通过这种方式操纵 header ,并且可能导致跨站点脚本攻击和其他类型的多重攻击。

https://www.fortify.com/vulncat/en/vulncat/python/header_manipulation.html

我为防止这种情况所做的是通过将“\r”和“\n”字符替换为空字符串“”来验证“http 响应拆分”的用户输入。这足够了吗,或者我还必须检查其他字符。任何指示都会有很大帮助。

这是我的代码。

if(response != null)
  {
   newResponse = response.replaceAll("[\r\n]", "");
  }

这是否足以防止此类攻击,或者我还应该验证其他字符。

最佳答案

白名单比黑名单安全得多。是否可以使用白名单取决于您对用户定义参数的了解程度。

更多内容:

http://cwe.mitre.org/data/definitions/113.html

关于java - java中的响应头验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10293846/

相关文章:

java - 如何在 SPRING REST API 中使用 SQL 查询处理 "ALL"?

java - JPQL 和 JPA 中的 native 查询 'GROUP_CONCAT' 是否有替代方案?

java - 将默认类路径设置为在命令提示符下的 `java` 命令中使用

security - SSHD仅接受来自其自身隧道的连接

javascript - Angular : Passing data back to my controller from a factory ajax call

http - 如何在 GitHub Pages 中使用 dot.tk 域?

java - 如何重用枚举中现有的实现

php - 如果我正在使用 HTMLPurifier,我还需要使用 htmlentities 吗?

java - 在java 8中的Web应用程序上获取 "always trust"

javascript - 在不更改数据库的情况下测试 POST 到 API 的策略