2

在 CRUD 环境中,假设我们正在显示用户联系人列表。网站需要为用户提供“编辑”和“删除”功能。每个联系人代表数据库表中的一条记录,记录的标识符必须传递给浏览器(客户端)。

在我的应用程序中,我通常在表中有一个自动增量标识符字段,并将其值传递给浏览器。因此,当用户想要编辑或删除时,我会连同该标识符一起向服务器发送请求。这样我就可以在表中找到记录。

但我担心安全和隐私。通常我不允许任何其他用户访问其他人的记录(Duh),尽管仍然不喜欢只将整数传递给浏览器。

AFAIK,大公司正在提供一个长的唯一标识符,如 40F0C923BACECBF40C4CAA465D0E4DB0 来执行此操作,但这次我需要在每次创建新记录之前检查是否使用了该值。

我不知道在哪里向数据库部分或这里问这个问题,只是在这里问。你们是如何做到这一点的?或者换句话说,它是如何专业地完成的?

4

1 回答 1

0

听起来像是 OWASP 前 10 名违规。特别是不安全的直接对象引用。每个数据库记录都需要有一个所有权 ID。这样您就可以将用户的 id 存储在会话状态中,并确保用户正在访问属于他们的记录。

于 2012-10-27T01:19:16.683 回答