关闭。这个问题是opinion-based .它目前不接受答案。
想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.
5年前关闭。
Improve this question
在 ASP.NET 中使用 QueryString 时,我一直在寻找一些最佳实践指南,但还没有真正找到。
我找到了一篇有用的优化文章:http://dotnetperls.com/querystring
但我更感兴趣的是回答以下问题:
等等...
任何更多的指导方针将不胜感激!
最佳答案
最终用户可以查看和更改查询字符串中的任何内容。这意味着他们有可能更改它以查看或访问他们不应该查看或访问的数据,或者影响您的网站/应用程序的行为。因此,不用说您对查询字符串不信任,并在使用之前检查所有内容。当你检查它时,不要检查它有什么问题(这可能是一个无限列表),而是检查正确的东西。如果您的一项检查失败,那么您应该丢弃查询字符串数据,或将其视为可疑。如果您对查询字符串中的数据进行了加密或编码,即使用户的更改由于编码而无意义,但如果用户对其进行了混淆并且您盲目信任它,它仍然会产生意想不到的副作用。
我在查询字符串中存储敏感数据的一种方法是不这样做;相反,我将存储敏感数据服务器端(在 Session、Cache 或数据库中的表中),然后我将在查询字符串中随机生成一个 key (通常是一个 GUID)来识别它,这样 URL 就会看起来像这样:
http://myurl.com/myPage.aspx?secretKey=73FA4A5A85A44C75ABB5E323569628D3
强制使用 GUID 相当困难,并且 GUID 冲突的可能性非常小,因此如果最终用户弄乱了查询字符串,那么他们最终什么也得不到。
当我需要存储很多东西并且查询字符串开始变得太长时,这种方法也很有效 - 需要跟踪的数据可以保存在一个对象中,然后存储在 Session 或 Cache 中,并且再次使用 GUID 作为它的关键。
关于asp.net - 在 ASP.NET 中使用查询字符串的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4867954/