响应java中的头部验证

时间:2012-04-24 07:48:57

标签: java security http response split

我直接在响应头中传递用户定义的参数。我所学到的并不是一个好主意,因为用户可以操纵标题,这可能会导致跨站点脚本攻击和其他类型的多次攻击。

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

我正在采取的措施是通过将“\ r”和“\ n”字符替换为空字符串“”来验证“http响应拆分”的用户输入。这还不够,或者我也要检查其他角色。任何指针都会有很大的帮助。

这是我的代码。

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

这是否足以防止此类攻击,或者我也应该验证其他角色。

2 个答案:

答案 0 :(得分:3)

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

更多信息:

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

答案 1 :(得分:0)

您提供的信息不足以获得正确答案。我们需要知道你对参数值做了什么,以便判断你的行为是否足够好以及你的代码运行的环境是什么样的。一个简短的,100%正确(但相当无用)的答案将是“无“。

通过遵循原始上下文之外的简单子弹来实现安全性。您从Python上下文中获取它并将其直接放到Java上下文中。您必须了解您的环境以及您的代码完全执行的操作。没有银弹。