将用户 ID 作为 url 参数是不是安全?
Posted
技术标签:
【中文标题】将用户 ID 作为 url 参数是不是安全?【英文标题】:Is it secure to put the user id as a url parameter?将用户 ID 作为 url 参数是否安全? 【发布时间】:2016-11-27 19:59:53 【问题描述】:我正在开发一个社交网络,我想知道是否可以在用户的个人资料页面中将存储在数据库中的用户 ID 作为参数放在 url 中,还是在安全性方面是个坏主意?
我希望 url 可以收藏。我应该放其他东西而不是用户ID吗?
【问题讨论】:
【参考方案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 中没有问题。例如 *** 已经做到了:https://***.com/users/3477044/aliuk
重要的是验证当前经过身份验证的用户是否被允许访问此 url 并代表其执行操作。
【讨论】:
其他用户也可以查看此网址,但不能在此处进行任何更改。以上是关于将用户 ID 作为 url 参数是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章