我正在创建一个媒体网站,在那里人们可以上传和查看视频和其他内容,目前我有一个非常基本的系统来更新视图,其中媒体的每个请求我增加一个观看计数。好吧,仅仅过了一天,就有人安装了一个机器人,开始向他的视频端点发送垃圾邮件。
预防这种情况的好方法是什么?我真的不想禁止IP,我更喜欢在请求之间有3-5秒的时间来认为请求是合法的,但我已经考虑过这个问题,没有任何真正好的想法,你有什么建议吗?
发布于 2017-08-25 01:03:12
在现实生活中,当你不喜欢一个人并且不想和他说话时,你该怎么办?你离他远点。你怎么做到的?你的大脑已经存储了他的脸和之前关于他的记忆,这样它就知道在发生对抗的情况下该怎么办。
计算机也是如此,当ip行为异常时,需要将ip存储到数据库中。
我们如何做到这一点
当一个请求在很短的时间内超过一次时,您的服务器需要将其存储到黑名单数据库中。监狱在现实生活中也是如此。当你想要的时候,你就让它去吧。您的服务器还需要知道当犯罪分子再次发送请求时应采取什么操作。
采取什么措施?
我们放弃了罪犯提出的要求。
如何在短时间后释放罪犯?
您的服务器需要跟踪时间,在您的黑名单笔记本(数据库)中,您需要存储罪犯被投入监狱的日期,因此服务器知道何时自动释放他。
服务器采取什么措施释放罪犯?
你需要知道犯罪的程度。第一次是level1,所以罪犯的请求每次都会被丢弃10秒。
level2 =>您正在丢弃请求的时间甚至更长。
level3 =>你将永远放弃这些请求。
为了让你更好地理解,这里有一个来自黑名单的代码示例..
IP=75.64.123.34; Date=Mon-Aug-13/2017-08-07; level=1
数据库
您需要创建jails,这取决于您使用的数据库,
假设您有mySQL,您将需要创建一个仅用于列入黑名单的IP的表。例如,如果您使用的是mongoDB,那么您应该只为这个任务创建一个新的模式。
对于每个请求,服务器必须检查列入黑名单的
是的,你没听错,当客户端发出请求时,服务器需要取出那个笔记本,看看客户端的IP是否在里面,如果没有,就必须让他通过。
会减慢服务器的运行速度吗?
是的,可能不会太多,这取决于你的服务器的电源。您还需要避免额外的代码,并使过程尽可能简单。这样你就可以把慢的比率降低到毫秒。
希望你会喜欢!
https://stackoverflow.com/questions/45865776
复制相似问题