【发布时间】:2011-06-25 11:27:03
【问题描述】:
我有一个非常简单(相当愚蠢)的问题,希望有人能澄清我的想法:)
我想在我的网站用户单击按钮后向他发送电子邮件。此电子邮件将在链接 URL 中包含带有用户用户 ID 的链接(作为链接的查询参数)。
一旦用户单击此电子邮件链接,我的服务器端代码将解析和解密 userID 查询字符串密钥以获取用户 ID 并对其执行一些操作。
我不能使用 base64 编码,因为它可以反转,“黑客”可以知道真实的用户 ID。我必须加密 ID,但是当我使用 AES 算法进行加密时,浏览器无法“理解”加密文本,即我无法将加密的 userId 文本作为 URL 的一部分传递,因为它包含未编码的字符,例如“/”,浏览器无法绕过。我能想到的一种选择是在通过 URL 发送加密文本后对加密文本进行 base64 编码。然后我可以对它进行bease64解码和解密。
这种方法比在加密文本上使用 Uri.EscapeDataString() 更好吗?
【问题讨论】:
-
这些标签有什么相关性?您可以考虑在security.stackexchange.com 或webmasters.stackexchange.com 上提问。
-
向用户发送一个密钥/令牌,并使用它访问数据库,并从数据库中获取 userId 和链接。我认为这样更安全。 (一旦链接被使用,在数据库中将其标记为过期)
标签: encryption