我正在使用ASP.NET MVC 3开发一个Web站点,现在我需要加密客户URL的ID。例如:
http://mysite.com/person?id=42
这样的事情:
http://mysite.com/person?id=Dfjhasdfh33kASDG868365çkhg54sdSDFD
需要安全。 当我说安全时,任何人都难以发现正确的ID
有没有图书馆可以做到这一点?
许多安全的网络支付之一就像paypal一样使用这种方法: https://paypal.com/br/webscr?info=CNS9tFsVM_tv4c18gHgZ3OMH2zblN7GWDQoyamVF3mzNh7vGDuhiKU3
答案 0 :(得分:1)
一种选择是使用随机生成的字符串或唯一标识符(GUID)使您的PK长。
答案 1 :(得分:1)
如果您真的想要加密查询参数,那么它非常简单,只需使用.Net提供的任何加密器,然后使用属性或httpmodule来解密该参数。
最重要的是始终验证请求。如果您可以使用防伪令牌进行POST,请执行此操作。然后,如果该用户有权访问受保护资源,请始终检查用户凭据。
这一点都不难,但你必须缓慢地处理它并处理你能想到的每一个场景。使用白名单方法:只允许那些满足某些条件的人。