对所有 QueryString 值进行 URLEncoding 是否有正当的安全原因,还是仅仅是反错误保护?
我了解它如何减少错误,但我很好奇它是否不再是一种安全措施。
This article表明这是一个问题,但我不太确定。
如有任何帮助,我们将不胜感激。
最佳答案
IMO,查询字符串值的 URL 编码不会提高安全性。保护 web 应用程序的要点是任何输入数据(或外部数据)都被认为是不受信任的(无论是来自 http 请求的 GET/POST 数据还是通过某些文件或通过 web 服务接收的数据)并且需要待验证。此外,在将数据推送到数据存储(例如 sql 注入(inject))或通过嵌入 html(XSS)将其打印出来时,您需要小心。 URL 编码只会确保客户端和服务器之间的数据正确传递。
如果您阅读了所见的文章,它也提出了同样的建议(最后需要建议段落)- 它本质上是在说明 URL 编码并不是真正的安全机制,而是使用各种其他实践来保护应用程序。
关于带有 IIS 7 的 ASP.NET - 对所有 QueryString 值进行 URLEncoding 是否有合法的安全原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7155679/