security - 评估在查询字符串中暴露行身份的安全风险

标签 security query-string

暴露 SQL 行的 ID 号是否存在安全风险?

例如,有一个 ID 为 12 的事件。

如果有人通过 http://example.com/events/12 访问它,或者有人向 http://example.com/events 发送 POST,是否存在安全问题/12 为了更新该记录(当然假设我允许这样做)?

最佳答案

在网络安全上下文中,向用户公开 ID 的问题通常被称为“不安全的直接对象引用”。

来自OWASP :

防止不安全的直接对象引用需要选择一种方法来保护每个用户可访问的对象(例如对象编号、文件名):

  1. 使用每个用户或 session 的间接对象引用。这可以防止 攻击者直接针对未经授权的资源。为了 例如,不使用资源的数据库键,而是使用下拉菜单 为当前用户授权的六种资源列表可以使用 数字 1 到 6 指示用户选择的值。这 应用程序必须将每个用户的间接引用映射回 服务器上的实际数据库 key 。 OWASP 的 ESAPI 包括两者 开发人员可以使用的顺序和随机访问引用图 消除直接对象引用。
  2. 检查访问权限。每次使用来自一个的直接对象引用 不受信任的来源必须包括访问控制检查以确保 用户被授权使用所请求的对象。

深度防御方法是同时执行 1 和 2。

关于security - 评估在查询字符串中暴露行身份的安全风险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8596355/

相关文章:

javascript - 两个 window.location 不能一起工作

javascript - 在 Ember.js 中关闭粘性查询参数

ios - 类别方法是否覆盖了潜在的安全问题?

css - XSS/跨站脚本还包括 CSS 注入(inject)吗?

angular5 - 如何在 Angular 5 中使用 ActivatedRoute?

c# - 查询字符串和提取值的问题

javascript - 在 EPUB3 文件中使用查询字符串

javascript - 保护 JavaScript API 的安全

java - 这里需要显式解码吗?

javascript - 在 JS Web 应用程序中,如何确保拥有访问 token 的恶意用户无法刷新它?