关于在URL中使用数据库ID的一般共识?

时间:2015-08-30 18:55:23

标签: java ruby-on-rails database web software-design

在网址(e.g. example.com/users/35/details)中使用数据库ID是可接受的做法还是应该避免?暴露它是否更容易受到安全威胁的影响?

1 个答案:

答案 0 :(得分:1)

公开内部详细信息(如ID)存在安全风险。但是,暴露这些细节的风险可能很低。

如果您根据用户的角色限制用户可能执行的操作,则攻击者不可能做任何超出用户通常操作的操作。

如果攻击者的角度允许他们针对您的数据库运行脚本,那么根据URL了解ID并不是您最大的问题。

除了安全问题可能是一个商业问题,您可能不希望让每个人都知道系统中有多少用户。顺序ID是一种很好的发现方式。

最后,在我看来,在大多数情况下,模糊对象ID所带来的努力和性能都不值得。如果你有充分的理由掩盖它,那么一定要做到。否则,时间和精力可能会在其他地方更好地使用。