Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在查询字符串中传递加密的ID_.net_Url_Aes - Fatal编程技术网

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

.net 在查询字符串中传递加密的ID,.net,url,aes,.net,Url,Aes,我正在开发一个.Net应用程序,它有效地包含新闻文章,其中一些是公开的,有些只有在您登录时才可用 每篇文章的URL都需要以某种方式包含文章ID,到目前为止,我一直在使用AES加密文章ID,使用用户ID作为“共享机密”,使用8位字符串作为salt e、 g./article.aspx?id=EVEAAAAACTP2IEC7LKYJSU6382RYL4K571L5/PQrJYY1JJfeq4F 问题是,如果用户在登录时查看文章,他们将无法复制URL并将其发送给其他任何人,因为它无法与其他用户的ID或

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

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

e、 g./article.aspx?id=EVEAAAAACTP2IEC7LKYJSU6382RYL4K571L5/PQrJYY1JJfeq4F

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

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


谢谢。

一种常见的方法是使用一个“链接”或“共享”按钮来生成一个链接,以便有人可以通过电子邮件发送。

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

为什么必须对文章ID进行加密?我假设您可以跟踪用户是否通过会话或类似的方式登录。只需检查是否允许用户在服务器端访问该文章,并在URL中使用该文章的普通ID。是否有具体原因使用加密文章ID而不是普通文章ID,并结合标准访问控制机制(检查用户是否登录并具有查看权限)?我想这只是公开数据库ID的一个普遍问题-如果网站遭到黑客攻击,这将非常危险。我认为这是最好的做法?这个网站为每个问题(以及答案和用户)公开一个id。