Javascript API授权允许公共行为产生风险?

Javascript API授权允许公共行为产生风险?,javascript,python,api,security,Javascript,Python,Api,Security,我想知道我所建议的是我所拥有的系统的典型场景,还是关于API安全性我应该关注的一些事情 该系统是一个小部件,可以放置在任何网站上,允许通过API将成员添加到我的一个用户活动中 Member Name Member ID Who the Member belongs to (user ID) 我有一个名为members的API资源。每个成员都属于我的系统的一个用户 我已经创建了如下表所示的授权注意:我所说的授权是指“是否授予此用户执行此操作的权限”,不要将此与身份验证(即访问API)混淆: 我所

我想知道我所建议的是我所拥有的系统的典型场景,还是关于API安全性我应该关注的一些事情

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

Member Name
Member ID
Who the Member belongs to (user ID)
我有一个名为members的API资源。每个成员都属于我的系统的一个用户

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

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

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

我所看到的是,我的用户正在创建大量的假成员,但我认为这是无法阻止的

有人会做不同的事情吗?或者我在想这个


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

该系统没有任何固有缺陷,但并非不可能规避。例如,如果某人是好人,他们可以伪造一个ip地址,因此如果你只看ip地址,就有可能从一台计算机上创建多个帐户。如果此人可以使用虚假身份识别,则很难防止多个帐户,但您可能会尝试识别活动或缺少活动,这可能是假冒用户的信号。对付假冒用户安全问题的最好办法可能是让用户也必须提供电子邮件地址之类的信息,并将用户数量限制在一个电子邮件地址下。这将大大减缓任何问题。如果你让他们“跳越圈套”,那么假账就变得更加困难,如果有人试图假账,就更容易追踪。如果你想让用户更加匿名,那么任何不可能以电子方式创建或管理用户的事情都会有很大帮助,因此验证码之类的东西会有所帮助。

如果你唯一的选择是通过客户端创建成员,那么我想你的选择是可以的。您只需限制可以从同一IP创建的用户数量,并删除48-72小时内未登录的用户。至少我会这么做。运行一个cron作业,删除所有在一定时间内从未登录过的用户(可能是假成员),并将每个IP的成员数量限制在-10。这样一来,你就不会被一个脚本小子通过JS控制台发送垃圾邮件,但你可以让同一网络(IP)中的人在需要时创建几个帐户。@Fratyr感谢你的回复。老实说,这是我能想到的唯一选择,但我愿意接受其他建议。验证匿名用户确实是我要问的,但那又有什么意义呢?
==============  =======  =======  =======  =======
Resource        Create   Read     Update   Delete
==============  =======  =======  =======  =======
Member          Public   Owner    Owner    No
==============  =======  =======  =======  =======