嗨,我只是想要一些反馈,一个DDOS阻止我正在设计的php脚本。这很简单,我想要一些反馈,看看你们是否认为这是有效的。
我目前正在使用ulogin框架作为基础,并且已经实现了API。此时,用户将发送带有密钥的请求。将对照数据库检查此键,以确定其是否正确。因此,如果密钥不正确,程序将返回。
如果键是正确的,那么将计算一些统计数据。第一件事是增加计数器。每秒平均命中率将从他们开始请求的时间计算到当前时间。此外,还有一个X秒的窗口,其中计数器将被重置(例如300)。程序员指定在此窗口中应允许的最大请求数。如果密钥超过了每个stats重置(窗口)请求的限制,或者超过了每秒一定数量的请求,则它们将被阻塞,而不被授予访问权限。然而,计数器仍然会增加,但另一个计数器将启动(块计数)。
当在窗口的末尾将计数器设置为0时,下一个窗口的计数将被设置为任何块计数,而阻塞计数将设置为0。如果用户没有在X(窗口)秒内使用API键,那么两个计数器都将被重置为0。
我已经添加了一个传递变量(0-1),它将把块计数的百分比取到下一个窗口,而不是整个块计数,但是我认为没有必要这样做。
这件事已经开始了吗?这会防止(D)DOS服务器使用的嗅探API密钥吗?你的想法是什么?)
发布于 2014-07-25 19:46:07
必须检查数据库的事实使DDOS脚本容易受到这种攻击。防范这种情况的关键是建立一个保护层,其响应速度比DOS攻击者以您的方式发送请求的速度还要快,同时仍然允许合法通信访问内部资源。我怀疑数据库是否足够快。
您可能需要将这些状态存储在像memcached这样的持久内存存储中,因为它没有经过身份验证,所以它有自己的安全性问题。
https://softwareengineering.stackexchange.com/questions/251170
复制相似问题