传递数组作为GET参数是一个安全问题?

时间:2016-12-20 14:10:12

标签: security web

我的大学刚刚拒绝将重复值作为get参数传递,因为这是一个安全问题。我谷歌他提到的术语"参数污染",但这是我第一次听到这个。这真的是我们应该关注的事情。我正在开发一个ASP.NET MVC项目,但它并不重要 - 这个问题会影响所有的Web框架。所以将数组作为get参数传递,如?key[]=v1&key[]=v2错误,如果"是" - 如何。

1 个答案:

答案 0 :(得分:0)

您可能希望查看此JLS 15.12.2.2,它解释了有关通过请求传递数组的安全问题。

  

这本身并不一定表明存在漏洞。   但是,如果开发人员没有意识到问题,那么存在   重复的参数可能会产生异常行为   可能被攻击者利用的应用程序。经常   在安全方面,意外行为是常见的弱点   在这种情况下,这可能导致HTTP参数污染攻击。至   更好地介绍这类漏洞和HPP的结果   攻击,分析一些现实生活中的例子很有意思   已经被发现了。

简而言之,在get请求中传递数组会向用户公开请求,并且他可以轻松地修改它,但高级用户也可以修改post请求的参数。因此,http都不安全。如果您不使用https,我强烈建议您使用https。