我正在开发一个允许版主编辑用户信息的应用程序。 所以,目前,我有这样的 URL
http://xxx.xxx/user/1/edit
http://xxx.xxx/user/2/edit
我在这里有点担心,因为我直接公开了数据库中的用户表主键 (id)。 我只是从 URL 中获取 ID(例如:从上面的 URL 中获取 1 和 2),使用 ID 查询数据库并获取用户信息(当然,我清理了输入,即来自 URL 的 ID)。
请注意:
我正在验证每个请求以检查版主是否有权编辑该用户
这就是我正在做的。这样安全吗?如果没有,我应该怎么做?
我可以想到一个替代方案,即为具有 25 个字符键的用户表设置一个单独的列,并使用 URL 中的键和查询数据库中的这些键
但是,
- 这有什么区别? (因为 key 现在暴露了)
- 通过主键查询比其他列更快地产生结果
最佳答案
这是安全的(并且似乎是最好的方法),只要管理员权限的验证是正确的并且您可以防止 SQL 注入(inject)。你提到了这两个,所以我会说你很好。
关于php - 我应该在应用程序前端隐藏数据库主键(id)吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23221086/