我正在创建一个人们可以上传和查看视频和其他内容的媒体网站,目前我有一个非常基本的系统来更新视图,其中每个媒体请求我将视图计数增加一个。好吧,只有一天,有人设置机器人开始垃圾邮件他的视频的端点。
防止这种情况的好方法是什么?我并不是真的想要禁止IP,我更愿意在请求之间有3-5秒的时间来考虑合法的请求,但是我没有任何真正好的想法,我会想到这一点,你会怎样提示?
答案 0 :(得分:1)
在现实生活中,当你没有 喜欢某人,不想跟他说话,你做了什么?你得到 远离他。 你是怎么做到的?你的大脑已经储存了他的脸和以前关于他的记忆 知道在对抗的情况下该做什么 ..
与计算机相同,当ip行为异常时,您需要将IP存储到数据库。
我们如何实现 ?
当请求在很短的时间内发出多次,您的服务器需要将其存储到黑名单数据库。与 jails 在现实生活中的方式相同。只要你想要,你就放手。当犯罪分子再次发送 时,您的服务器还需要知道要采取的操作。
采取什么行动?
我们放弃犯罪分子提出的请求。
如何在短时间内释放犯罪分子?
您的服务器需要跟踪时间,在 黑名单 笔记本(数据库)中,您需要存储犯罪分子被投入监狱的日期,等等服务器知道何时自动释放他。
服务器要采取什么行动释放罪犯?
你需要有犯罪程度。第一次是level1
,所以犯罪分子的请求每次都会被丢弃10秒,即
level2
=>
您正在放弃请求更长的时间。
level3
=>
您正在放弃请求。
为了让您更好地理解,以下是黑名单中某些代码的示例..
IP=75.64.123.34; Date=Mon-Aug-13/2017-08-07; level=1
<强> 数据库 强>
您需要创建jails ,具体取决于您使用的数据库
假设你有 mySQL ,你需要创建一个表,它只用于列入黑名单的IP 例如如果您正在使用 mongoDB ,则应为此 任务 创建新架构。
对于每个请求,服务器必须检查列入黑名单的IPS
是的,您听到的是正确的,当客户提出请求时,服务器需要拔出该笔记本并查看客户端的IP是否在那里,如果不是,则必须让他通过。
会降低服务器速度吗?
是的,可能不会太多,具体取决于您的 服务器的强大功能 。您还需要避免额外的代码并使过程尽可能简单。这样,您可以将慢速比率下拉到毫秒。
希望你喜欢它!