1

您好我正在使用 Java 和 Spring 框架构建一个 Internet 网站。我相信我的问题与技术或框架无关。

我需要在用户界面中有链接,以便访问者可以单击并查看记录。这些链接的格式为

http://mysite.com?id=number-id-or-random-unique-string

并非所有记录都可以查看。对于 URL 中的 ID 参数,我可以使用数据库生成的数字作为 ID 值,因此我不需要额外的编程。或者我可以使用唯一的随机字符串(例如:jcTDjhdDUls)作为 ID 值(我必须对这部分进行编程)。数字可以让好奇的人(怀着好意或坏意)轻松猜测和尝试其他 ID。在这方面,唯一的随机字符串似乎更好。

但是,无论是数字还是字符串作为 ID 的值,我都会在后端代码中进行安全检查,以查看是否允许访问者查看记录。从这个角度来看,我不确定将随机字符串作为 ID 的真正好处是什么。

我希望得到有经验的人的意见。你选择什么设计决策?还是其他更好的想法?

谢谢并恭祝安康。

4

1 回答 1

4

如果你愿意,你当然可以,但我不会费心去随机化 ID。这就是其根源,“通过默默无闻(STO)实现安全”。有时 STO 很有用,但在这种情况下,我认为不值得让代码和内存占用变得复杂和臃肿。使用像Burp Suite这样的工具,枚举有效 ID 非常容易,无论它们是随机的还是非随机的。所有真正重要的安全控制都应该在后端实现。

于 2013-05-12T23:58:22.990 回答