|
|
1
4
您真的想对用户隐藏数据库ID吗,比如在一个场景中,用户对数据库有一些备用访问权限,而您想让他以硬方式搜索图书?
通常要求不是对ID保密,而是防止用户找出其他项目的ID(例如强制某个导航漏斗到达某个项目)或与其他用户共享ID。例如,有一个URL就可以了
保持ID真正的“秘密”(即将其存储在会话中,并使会话状态保持跟踪“当前书籍”)对上述方案没有什么价值,只会使事情复杂化。 一种解决方案是使用站点密钥加密ID。从一个int id中,您可以得到一个16字节的加密块(例如,如果使用了aes块大小),在随后的访问中,该块可以由站点恢复为原始id。由于解决方案空间的绝对大小(16字节),访问者无法猜测其他ID。如果您还想使伪ID对用户具有粘性,您可以使加密密钥特定于用户(例如,从用户ID派生),或者向伪ID中添加额外信息(例如,同时加密用户ID并在请求处理程序中对其进行检查)。 |
|
|
2
1
Is exposing the IDs a risk? (所以问题) |
|
|
3
0
每本书用一个“伪ID”怎么样?我假设您需要客户机端的东西来告诉服务器客户机选择了哪本书。 为每本书生成一个guid以用作Web端的“伪ID”,这样可以保证真正的ID相当安全。 |
|
|
4
-2
我不确定我理解你的问题,因为答案似乎太明显了: 只是不要将实体的ID发送给客户机 . 在服务器端使用它来组成ASP.NET页,但不要在发送到客户机的输出页上包含ID本身。 这有道理吗?-) |
|
|
Michael · 某些Windows客户端上的命名管道安全问题 1 年前 |
|
|
adamency · 是否可以从Go二进制文件的源代码中检索字符串? 2 年前 |
|
|
AlboSimo · PayPal Api密钥安全 2 年前 |