【问题标题】:Security : primary key parameter in an url安全性:url中的主键参数
【发布时间】:2015-09-22 19:54:43
【问题描述】:

我有一个关于安全的问题。我有一个使用这样的 URL 的网站:

www.mysite.com/product?id=4

在服务器端,我当然会检查产品 id=4 是否存在,以及连接的用户是否有权查看该产品的此页面。如果不是,用户会收到“未授权”错误。

我的问题是 id=4 是我表的主键。我想知道这个主键在 url 中清晰显示是否是个好主意。

也许

www.mysite.com/product?id=45t6yHYU431azeFgThu78n

更好?在地址栏中转换这些参数会更好吗?或者如果在服务器端正确管理安全性,则不需要?

【问题讨论】:

标签: security get


【解决方案1】:

不要在 URL 中使用产品 ID = 4,而是使用 PHP 中定义的 POST 方法将产品 ID 发送到服务器端而不显示在地址栏中

【讨论】:

    【解决方案2】:

    这取决于标识符指的是什么。你总是想知道攻击者可以用这些信息做什么。泄露 URL 中的不透明标识符是否会给攻击者任何有价值的信息?他/她能否使用这些信息以不安全的方式检索更多信息?

    例如,如果此标识符是一个医疗记录编号 (MRN),它也用于其他系统和许多纸质表格,则在 URL 中使用此标识符将违反 HIPAA。

    另一方面,如果此标识符指向库存表中的产品,则可以在 URL 片段或查询参数中使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-14
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多