我的大学刚刚拒绝将重复值作为get参数传递,因为这是一个安全问题。我谷歌他提到的术语"参数污染",但这是我第一次听到这个。这真的是我们应该关注的事情。我正在开发一个ASP.NET MVC项目,但它并不重要 - 这个问题会影响所有的Web框架。所以将数组作为get参数传递,如?key[]=v1&key[]=v2
错误,如果"是" - 如何。
答案 0 :(得分:0)
您可能希望查看此JLS 15.12.2.2,它解释了有关通过请求传递数组的安全问题。
这本身并不一定表明存在漏洞。 但是,如果开发人员没有意识到问题,那么存在 重复的参数可能会产生异常行为 可能被攻击者利用的应用程序。经常 在安全方面,意外行为是常见的弱点 在这种情况下,这可能导致HTTP参数污染攻击。至 更好地介绍这类漏洞和HPP的结果 攻击,分析一些现实生活中的例子很有意思 已经被发现了。
简而言之,在get请求中传递数组会向用户公开请求,并且他可以轻松地修改它,但高级用户也可以修改post请求的参数。因此,http都不安全。如果您不使用https,我强烈建议您使用https。