gpt4 book ai didi

javascript - API 授权允许公共(public)创建操作风险?

转载 作者:行者123 更新时间:2023-11-29 19:45:33 24 4
gpt4 key购买 nike

我想知道我所提议的是我所拥有的系统的典型场景,还是我应该关注的关于 API 安全性的问题。

该系统是一个小部件,可以放置在任何网站上,允许通过 API 将成员添加到我的一个用户事件中。

Member Name
Member ID
Who the Member belongs to (user ID)

我有一个名为成员的 API 资源。每个成员都属于我系统的一个用户。

我已经创建了授权,如下表所示。 注意:我所说的授权是指“授予此用户执行此操作的权限”,不要将其与身份验证(即访问 API)混淆):

==============  =======  =======  =======  =======
Resource Create Read Update Delete
============== ======= ======= ======= =======
Member Public Owner Owner No
============== ======= ======= ======= =======

我所说的公开是指任何人都可以创建新成员,无论有谁。但是,一旦创建此记录,只有所有者(为其创建记录的用户)才能读取或更新它。

我看不出有人如何解决这个创建记录公开的问题,因为这是通过我无法控制的网站外部的javascript发生的(客户端)。我无法知道有谁。但是,在要求用户登录到我的站点并获得控制权之后,对该成员执行任何操作。

我能看到的是为我的用户创建了许多假成员(member),但我看不出有什么办法可以阻止这种情况

有人会采取不同的做法还是我想多了?

注意: 添加 Python 标签是因为它是一个 Python API,这可能会有所不同。作为客户端添加的 Javascript 标记是脚本。如果不是或偏离主题,我将删除标签或问题。

最佳答案

该系统本身没有任何缺陷,但并非无法规避。例如,如果某人是好人,他们可以伪造一个 ip 地址,因此如果您只看 ip 地址,就可以从一台计算机创建多个帐户。如果此人可以使用虚假身份,则很难阻止多个帐户,但您可以尝试识别可能表明虚假用户的事件或缺乏事件。解决虚假用户安全问题的最佳方法可能是让用户还必须提供电子邮件地址等信息,并限制一个电子邮件地址下的用户数量。这应该会显着减缓任何问题。如果你让他们“跳过圈套”,那么如果有人试图伪造账户,就更难伪造并且更容易追踪。如果您希望用户更加匿名,任何无法以电子方式创建或管理用户的方法都会有很大帮助,因此验证码之类的东西会有所帮助。

关于javascript - API 授权允许公共(public)创建操作风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20026503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com