C# 在URL中隐藏查询字符串
是否可以从URL隐藏查询字符串 我计划去参加一个会议。。但它只在有限的时间内起作用 我的URL和查询字符串是 Default.aspx?a=b&c=D 我需要作为默认值.aspxC# 在URL中隐藏查询字符串,c#,asp.net,.net,url,query-string,C#,Asp.net,.net,Url,Query String,是否可以从URL隐藏查询字符串 我计划去参加一个会议。。但它只在有限的时间内起作用 我的URL和查询字符串是 Default.aspx?a=b&c=D 我需要作为默认值.aspx 我试过加密和解密。。但是这些值可以在地址栏中更改。在表单上使用POST操作,而不是GET。值仍然可以更改,只是在URI上看不到它们在表单上使用POST操作而不是GET。值仍然可以更改,只是在您的URI上看不到它们如果会话变量对您不好,请尝试将值存储在cookie中。如果会话变量对您不好,尝试在Cookie中存储值。使用
我试过加密和解密。。但是这些值可以在地址栏中更改。在表单上使用POST操作,而不是GET。值仍然可以更改,只是在URI上看不到它们在表单上使用POST操作而不是GET。值仍然可以更改,只是在您的URI上看不到它们如果会话变量对您不好,请尝试将值存储在cookie中。如果会话变量对您不好,尝试在Cookie中存储值。使用URL重写或URL路由来执行此操作。使用URL重写或URL路由来执行此操作。我不使用.NET,但您可以使用POST代替GET。我不使用.NET,但您可以使用POST代替GET。Ganesh 你必须理解URL是什么 URL是允许访问internet上资源的地址 所以我们不应该在URL中隐藏任何内容,因为这就像说某人“去伦敦约翰街127号”,而你不希望他尝试去126号(因为他不被允许) 为什么要隐藏url参数?大多数情况下,因为您的用户必须具有访问资源的正确权限,因此您的解决方案如下:
- 将用户id存储在会话中,当用户尝试访问ressource时,请检查他是否具有强制权限
- 或者将产品ID设置为整数以外的值(或者在DB“ProductIDUrl”中添加一列),例如guid,这样就没有人能猜出产品ID
- 将用户id存储在会话中,当用户尝试访问ressource时,请检查他是否具有强制权限
- 或者将产品ID设置为整数以外的值(或者在DB“ProductIDUrl”中添加一列),例如guid,这样就没有人能猜出产品ID
如果您只关心安全性,则加密查询字符串是一种选择。如果您关心安全性,则不是最佳方法。通过邮寄发送数据也不能解决问题,除非您使用某种加密 顺便说一句,您可以同样轻松地加密URL。不建议使用会话,因为它会给服务器带来额外的负载 Cookie可能会影响性能
如果您只关心安全性,那么加密查询字符串是一个选项。您说的“但它只能在有限的时间内工作”是什么意思?@Strillo他的意思是会话将在一段时间后过期。。如果需要长时间存储值,可以增加会话持续时间或其他缓存解决方案。如何增加会话持续时间?它不应该过期很长时间。你尝试加密是什么意思?你说“但它只能在有限的时间内工作”是什么意思?@Strillo他的意思是会话在一段时间后过期。。如果需要长时间存储值,可以增加会话持续时间或其他缓存解决方案。如何增加会话持续时间?它不会过期很长时间。你尝试加密是什么意思?谢谢Huske。。饼干是安全的吗?什么安全?它们将位于您的用户计算机上,并将传送给您。如果你想安全地发送它们,你需要使用HTTPS。好的。。我开始使用查询字符串,因为它不会过期,可以随时运行页面。查询字符串的唯一问题是地址栏中可能会发生更改。我需要完全一样的查询字符串功能和工作隐藏为会话。Cookie可以解决问题,伙计?Cookie可以解决问题1)只要用户启用Cookie和/或2)只要他们不清除缓存。谢谢Huske。。饼干是安全的吗?什么安全?它们将位于您的用户计算机上,并将传送给您。如果你想安全地发送它们,你需要使用HTTPS。好的。。我开始使用查询字符串,因为它不会过期,可以随时运行页面。查询字符串的唯一问题是地址栏中可能会发生更改。我需要完全一样的查询字符串功能和工作隐藏为会话。Cookie会解决问题的,伙计?Cookie会解决问题1)只要用户启用了Cookie和/或2)只要他们不清除缓存。感谢您的回复Gaurav Agrawal!!我不知道url重写和路由。。。请举例说明……这个答案并不是特别有用。如果有人不知道URL重写或路由是什么,那么这并不能告诉他们多少。如果他们知道这些东西是什么,他们可能不会问这个问题。谢谢你的回答Gaurav Agrawal!!我不知道url重写和路由。。。请举例说明……这个答案并不是特别有用。如果有人不知道重写什么URL