【发布时间】:2012-03-17 06:48:10
【问题描述】:
我心里有这个问题。 我想与你们分享一下,以获得适合自己的答案,并可能会帮助那里的人。
因此,为了论证,我们假设我们的网站有一个用户表,其中包含以下列:
id, name, email and password
很多时候我们必须在客户端使用 id 字段。 假设我们已经实现了 AJAX 以允许用户编辑他们的个人资料。 在个人资料编辑页面上看起来像这样:
<div>
<div>
<label>Name: <input type = "text" name = "txtName" id = "txtName"/></label>
</div>
<div>
<label>Email: <input type = "text" name = "txtEmail" id = "txtEmail"/></label>
</div>
<div>
<label>Password: <input type = "password" name = "txtPasswd" id = "txtPasswd"/></label>
</div>
<div>
<input type = "submit" name = "updateProfile" value = "Save" />
<input type = "hidden" name = "id" value = "1" />
</div>
</div>
请继续关注问题,而不是指出可能由表格设计、html 或 css 内容引起的缺陷。
问候,
【问题讨论】:
-
这取决于用户知道ID或能够猜测其他ID的危险程度。如果我可以通过将 ID 从
1更改为2来覆盖另一个用户的配置文件,那么您的安全性问题就更深了。尽管如此,人们还是喜欢使用随机 ID 向外界提供服务 -
我有一个散列(随机 32 个字符)和用户 ID,我使用散列在内部进行外部通信。
-
@Dagon ,这是个坏主意,因为我可以加入您的社区并查看表单并轻松更改其他用户的详细信息。
-
@Ofir Baruch 没有社区,别想知道我为谋生而建立什么样的网站。
-
@Dagon ,我使用术语
community作为具有登录名和用户的站点。总之,无意冒犯。
标签: php javascript ruby-on-rails ajax database