在查询字符串中传递加密的ID

时间:2012-08-15 15:12:15

标签: .net url aes

我正在构建一个有效发布新闻文章的.Net应用程序,其中一些是公开发布的,其中一些只有在您登录时才可用。

每篇文章的URL都需要以某种方式包含文章的ID,直到现在我一直使用AES来加密文章ID,使用用户的ID作为“共享密钥”和8位字符串作为salt。

e.g。 /article.aspx?id=EvEAAAACtp2iEc7lKyJSu6382Ryl4k571L5/PQrJYY1JJfeq4F

问题在于,如果用户在登录时查看文章,他们将无法复制该URL并将其发送给其他任何人,因为它不能与其他用户的ID一起使用或未使用-in user。

在需要在已知/未知用户之间共享ID时,在查询字符串(或其他任何地方)中包含ID的正确方法是什么?

感谢。

2 个答案:

答案 0 :(得分:1)

在明文中传递查询字符串上的id会不会更安全,并让Web服务器检查客户端是否有足够的凭据来读取该文章,并做出适当的反应?它甚至可以返回相关的HTTP状态代码(401)以指示您需要登录,或者403以指示您无法看到它。

答案 1 :(得分:0)

这样做的一个常见方法是拥有一个" Link"或"分享"生成可以发送电子邮件的链接的按钮。