打开附加到数据库的 REST API - 是什么阻止坏人向我的数据库发送垃圾邮件?
Open REST API attached to a database- what stops a bad actor spamming my db?
我是一名客户端开发人员,几乎没有服务器端经验,我正在努力了解如何在不要求用户登录的情况下制作数据库支持的网站。
用例相当简单。用户登陆一个网站,上传一张图片,然后对该图片进行一些处理。单击 'share' POST JSON 到我的端点,将其存储在数据库中,并且 returns 在文本框(例如,https://example.com/art/12345)中允许唯一的 URL用户与他人分享他们的作品,或者稍后回来做更多的编辑。
是什么阻止了某人做 POST <data> https://example.com/art
1 亿次并填满我的现收现付数据库?
我在很多网站上看到过这种基于 link 的用户共享方法的例子,但我不明白如何停止滥用,或者只是打开一个 API 允许写入数据库。我不希望用户必须登录。
我认为最简单的方法是设置配额,如果您不需要登录或只想允许免费使用到某个点,则可以通过登录用户的用户名或 IP。也许您可以为未登录用户设置比登录用户更小的配额,而为付费用户设置更大的配额。
处理 POSTS 并将数据存储到数据库中的服务器端代码必须处理好这一点。我会将它添加到我的 user_data table 中,创建一个额外的列来跟踪使用的 space 总数。 做一个待办事项
然后,当用户添加新数据时,增加使用的总数space。当他们删除旧数据时(我对网页进行了版本控制,最终用户将能够回滚到以前的版本)然后使用的 space 减少了。有另一个页面可以查看他们在哪里使用 space 可以更轻松地决定删除哪些内容以保持在 X MB's/GB's/TB's/etc 的配额以下或者可能只是 /api/delete_old_pages 或注释或评论或以上所有内容。
我是一名客户端开发人员,几乎没有服务器端经验,我正在努力了解如何在不要求用户登录的情况下制作数据库支持的网站。
用例相当简单。用户登陆一个网站,上传一张图片,然后对该图片进行一些处理。单击 'share' POST JSON 到我的端点,将其存储在数据库中,并且 returns 在文本框(例如,https://example.com/art/12345)中允许唯一的 URL用户与他人分享他们的作品,或者稍后回来做更多的编辑。
是什么阻止了某人做 POST <data> https://example.com/art
1 亿次并填满我的现收现付数据库?
我在很多网站上看到过这种基于 link 的用户共享方法的例子,但我不明白如何停止滥用,或者只是打开一个 API 允许写入数据库。我不希望用户必须登录。
我认为最简单的方法是设置配额,如果您不需要登录或只想允许免费使用到某个点,则可以通过登录用户的用户名或 IP。也许您可以为未登录用户设置比登录用户更小的配额,而为付费用户设置更大的配额。
处理 POSTS 并将数据存储到数据库中的服务器端代码必须处理好这一点。我会将它添加到我的 user_data table 中,创建一个额外的列来跟踪使用的 space 总数。 做一个待办事项
然后,当用户添加新数据时,增加使用的总数space。当他们删除旧数据时(我对网页进行了版本控制,最终用户将能够回滚到以前的版本)然后使用的 space 减少了。有另一个页面可以查看他们在哪里使用 space 可以更轻松地决定删除哪些内容以保持在 X MB's/GB's/TB's/etc 的配额以下或者可能只是 /api/delete_old_pages 或注释或评论或以上所有内容。