0

我有一个数据库支持的网络应用程序。我需要这个功能:

有一个包含行的表,我需要生成一个 URL。如果用户单击 URL(例如包含在电子邮件中),则会针对特定 id 更新列值。

我知道我可以创建一个链接,比如http://server.com/update?id=30303030&newvalue= 'dxckdk';

但是,这不会很安全,因为有人可能会尝试使用生成的 id 发送请求。

确保这一点的最佳方法是什么?

谢谢你的帮助!

Ĵ

4

2 回答 2

0

使用随机生成的 UUID(令牌)

  1. 几乎可以保证不会有可预测的序列

  2. 不能重放,即令牌仅供一次性使用。请求http://server.com/update?token=mxyzptlk后,该键值不应重复使用

  3. 不能以任何方式进行逆向工程。与加密值不同,一旦其源材料或加密密钥被泄露,就会被泄露。UUID 是不可预测的。AFAIK,他们也不容易受到逆向工程的影响。

  4. 它们生成起来相对简单,处理开销也很低(无论如何取决于您的平台)

于 2013-04-23T04:04:19.393 回答
0

您可以尝试对查询字符串值使用加密。这种方式没有人可以改变数据事实上没有人可以得到你在查询字符串中发送的内容。这个技巧有加密/解密开销的缺点,但它是安全的。

我喜欢这种方法,因为它可以链接并支持加密和普通查询字符串 http://weblogs.asp.net/bradvincent/archive/2008/10/27/helper-class-querystring-builder-chainable.aspx

http://www.codeproject.com/Articles/25719/Query-string-encryption-for-ASP-NET

于 2013-04-22T15:27:37.797 回答