当前位置:  开发笔记 > 编程语言 > 正文

为什么在ASP.NET中加密查询字符串?

如何解决《为什么在ASP.NET中加密查询字符串?》经验,为你挑选了1个好方法。

我在使用C#/ ASP.NET编写的Web应用程序上工作.此应用程序的原始成帧器选择使用加密的查询字符串并Viewstate控制应用程序的"安全性"和"状态".

在此之前来自GET/POST世界,我没有一个很好的基础来理解为什么人们会遇到加密查询字符串的麻烦,当使用POST来处理敏感数据(以及SSL)会达到类似的水平安全.

我的问题是:在ASP.NET中使用加密查询字符串有哪些优缺点?是否有记录在案的"最佳实践"?


编辑:人们倾向于关注Viewstate这个问题. 不要.提到Viewstate只是为了让您更好地确定"状态"是如何管理的,因为它与URL相切.我从来没说过Viewstate加密了.确实存在两个问题:1)使用Viewstate和2)加密查询字符串的使用.这个问题集中在后者上.我希望这有助于澄清问题的重点.



1> Ian Varley..:

您可能会执行此类操作的原因是为了防止篡改URL以访问除您自己之外的数据.例如,如果您有网址:

http://foo.com/user.aspx?user_id=123

我(或任何人)将其改为:

http://foo.com/user.aspx?user_id=124

如果您的数据访问策略完全依赖于查询字符串中的内容,则可能允许未经授权的数据访问.

这种方法确实可以正确地实现这一目的,但是更加健壮的方法是在应用程序中主动检查授权,而不是完全依赖URL进行身份验证和/或授权.

请注意,这与SSL无关 - 这可以确保浏览器和服务器之间的隐私,但您可以在完全安全的连接下并仍然篡改URL.


这个讨论是无关紧要的**...不安全不是安全问题,而且依赖于**的方案对于混淆网址查询字符串是错误的.如果它与安全性无关,为什么要删除网址呢?(**它没有**).应用程序逻辑应该询问"尝试访问此资源的人是否可以访问此资源?".这就是结束.
推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有