在网址(e.g. example.com/users/35/details)
中使用数据库ID是可接受的做法还是应该避免?暴露它是否更容易受到安全威胁的影响?
答案 0 :(得分:1)
公开内部详细信息(如ID)存在安全风险。但是,暴露这些细节的风险可能很低。
如果您根据用户的角色限制用户可能执行的操作,则攻击者不可能做任何超出用户通常操作的操作。
如果攻击者的角度允许他们针对您的数据库运行脚本,那么根据URL了解ID并不是您最大的问题。
除了安全问题可能是一个商业问题,您可能不希望让每个人都知道系统中有多少用户。顺序ID是一种很好的发现方式。
最后,在我看来,在大多数情况下,模糊对象ID所带来的努力和性能都不值得。如果你有充分的理由掩盖它,那么一定要做到。否则,时间和精力可能会在其他地方更好地使用。