Web安全性:不显示行ID的原因

时间:2016-06-14 09:53:45

标签: security web relational-database database-schema

问题即可。为所有用户显示数据库表行ID是不是很糟糕?如果是这样,为什么?

背景即可。我正在考虑在我的应用程序URL中使用数据库表行ID,如下所示:www.mysite.com/product/45/tshirt_blue,其中45是行ID。我觉得这对安全性有害,但我一直在想为什么?

1 个答案:

答案 0 :(得分:-1)

在数据库中引用主键会在安全领域和可维护性领域引发一些问题。

安全性:直接引用您的行ID可以很容易地猜测其他产品,并可能绕过授权检查(AuthZ)。虽然您不应该通过默默无闻来依赖安全性来保护系统,但这并不意味着您必须在整个Web应用程序中留下用于回归测试AuthZ控件的指令。

可维护性:如果你计划拥有一个合乎逻辑的实体," Blue Seahawks T恤"是相同的逻辑产品,但不同的数据库条目,45 - >例如,这将难以维持。现在将更改该产品的所有链接,并且书签和可能的搜索引擎将被破坏,除非您始终映射45 - > 145,然后是其他事情。拥有您在后台映射到相应数据库条目的某种中间ID将允许您的链接保持一致。