【问题标题】:Is it secure to put the user id as a url parameter?将用户 ID 作为 url 参数是否安全?
【发布时间】:2016-11-27 19:59:53
【问题描述】:

我正在开发一个社交网络,我想知道是否可以在用户的​​个人资料页面中将存储在数据库中的用户 ID 作为参数放在 url 中,还是在安全性方面是个坏主意?

我希望 url 可以收藏。我应该放其他东西而不是用户ID吗?

【问题讨论】:

    标签: security social-networking bookmarks url-parameters userid


    【解决方案1】:

    保护您的网站免受 sql 注入是安全的。 但是,如果发生违规行为,所有用户都是易受攻击的。黑客唯一需要做的就是找到用户配置文件获取他的 ID。复制sql注入的输出。转到文本编辑器。按 ctrl - f 并搜索用户 ID。

    【讨论】:

    • 但是黑客可以对任何其他数据而不是用户 ID 做同样的事情,不是吗?
    • 你的回答缺乏很多。问题不仅在于 SQL 注入,还在于不安全的直接对象引用以及直接在 URL 中公开任何数据库 ID 所带来的操作安全问题。
    【解决方案2】:

    我一直在使用的大多数社交网络,使用用户名作为 url 而不是 id,当然它也会影响 seo,因为你有“漂亮的 url”。

    安全性实际上取决于您编写代码的方式,假设有一个页面可以编辑配置文件,如果您在代码中添加如下内容: 更新 .. 设置 .. WHERE id = $_GET['id']

    毫无疑问,这很危险,您应该检查每个用户的操作,例如发布/编辑个人资料等。谁在登录,而不是当前 url 上的 id 是什么

    【讨论】:

      【解决方案3】:

      在安全性方面,将用户 ID 放在 url 中没有问题。例如 StackOverflow 已经做到了:https://stackoverflow.com/users/3477044/aliuk

      重要的是验证当前经过身份验证的用户是否被允许访问此 url 并代表其执行操作。

      【讨论】:

      • 其他用户也可以查看此网址,但不能在此处进行任何更改。
      猜你喜欢
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      • 2011-11-25
      • 2015-04-13
      • 2015-12-19
      • 1970-01-01
      • 2010-12-03
      • 2019-05-02
      相关资源
      最近更新 更多