【问题标题】:How to pass table record identifier to client side如何将表记录标识符传递给客户端
【发布时间】:2012-10-16 11:01:30
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: javascript html database security privacy


    【解决方案1】:

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

    【讨论】:

    • 我已经这样做了。在对数据库做任何事情之前,首先要检查所有权。但我想知道的是,如果只将记录标识符整数传递给浏览器是一种专业技术吗?
    猜你喜欢
    • 1970-01-01
    • 2017-11-14
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2012-09-22
    • 2016-01-10
    相关资源
    最近更新 更多