3

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

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

我正在做的是通过用空字符串“”替换“\r”和“\n”字符来验证“http响应拆分”的用户输入。这是否足够,或者我还必须检查其他字符。任何指针都会有很大帮助。

这是我的代码。

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

这足以防止这种攻击还是我也应该验证其他角色。

4

2 回答 2

3

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

更多在这里:

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

于 2012-04-24T08:12:58.913 回答
0

您提供的信息不足以正确回答。我们需要知道您对参数值做了什么,以便判断您的操作是否足够好以及您的代码运行在什么样的环境中。简短的、100% 正确(但非常无用)的答案是“不。”

遵循在其原始上下文之外获取的简单项目符号并不能实现安全性。您从 Python 上下文中获取它并将其直接放置到 Java 上下文中。您必须完全了解您的环境以及您的代码的功能。没有银弹。

于 2012-04-24T08:11:52.440 回答