带有 IIS 7 的 ASP.NET - 对所有 QueryString 值进行 URLEncoding 是否有合法的安全原因?

标签 asp.net iis-7

对所有 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/

相关文章:

c# - ASP.Net Web服务,可以嵌套吗?

javascript - jquery.show 未运行

PHP 错误输出 - 带有 IIS7 和 FastCGI 的 Plesk 9.2

c# - 系统.Data.SqlClient.SqlException : Timeout expired

visual-studio - IIS 7 中不提示调试断言

c# - 如何将复杂的对象集合传递给mvc中的 Controller

asp.net - 将 OutputCache 添加到 ASP.NET WebForm 会使我的站点崩溃 :(

powershell - 使用 $site | Set-Item 不会将更改保存回 IIS 站点

asp.net-mvc - "' Sys ' is undefined"在 IIS7 中运行 ASP.NET MVC 应用程序时出错

c# - 如何从 Global.asax 呈现一个 asp.net WebForm 页面?