1

我正在使用 ASP.NET MVC 3 开发网站,现在我需要加密客户 URL 的 ID。例如:

http://mysite.com/person?id=42

像这样的东西:

http://mysite.com/person?id=Dfjhasdfh33kASDG868365çkhg54sdSDFD

它需要是安全的。当我说安全时,这意味着任何人都很难找到正确的 ID

有没有图书馆可以做到这一点?

许多像贝宝这样的安全网络支付都使用这种方法: https ://paypal.com/br/webscr?info=CNS9tFsVM_tv4c18gHgZ3OMH2zblN7GWDQoyamVF3mzNh7vGduhiKU3

4

2 回答 2

1

一种选择是使用随机生成的字符串或唯一标识符 (GUID) 使您的 PK 变得那么长。

于 2012-06-14T17:01:55.083 回答
1

如果您真的想加密查询参数,这非常简单,只需使用 .Net 提供的任何加密器,然后使用属性或 httpmodule 来解密参数即可。

最重要的是始终验证请求。如果您可以使用防伪令牌进行 POST,请执行此操作。然后,如果该用户有权访问受保护的资源,请始终检查用户凭据。

这一点都不难,但你必须慢慢来,处理你能想到的每一个场景。使用白名单方式:只允许满足某些条件的人。

于 2012-06-15T09:49:22.393 回答