我正在运行一个聊天室([医]佛氏)与mysql+php。我有一个专用的服务器来运行这个脚本,因为它可以消耗大量的资源。它对100个并发用户都很好。然而,最近有一个用户威胁我们要杀死这个聊天室,他正在成功地这样做:
只有40个用户,聊天室已经死了。传递一条信息需要10-20秒。MySql消耗了300%的CPU。然而,对于100个用户(当它没有受到攻击时),聊天室只使用200-300%的CPU。我检查了下面的内容,以确保他没有使用/DDoSing我们的服务器。
1 - Limited 3 requests per seconds.
2 - Analyzed access.log to see any weird activity or CRLF slow attacks. There is none.
3 - Looked per IP connections using netstat command and none has lots of connections.
4 - I disabled ping of death服务器上的静态网站即使在受到攻击时也能正常工作。我假设他正在通过聊天室利用mysql发送许多请求。我运行了以下查询来查看到mysql的当前连接:
SHOW STATUS WHERE `variable_name` = 'Threads_connected'结果只有7个看起来很正常。还有其他的步骤可以阻止他的攻击和保护我的服务器(聊天室)吗?
发布于 2015-06-15 03:15:32
(从最后的注释中)啊,这意味着攻击者正在使用mysql注入尝试一些查询,所以首先您必须
1)净化您的输入
如果您正在使用pdo或mysqli,那么使用bind (准备好的语句)特性来筛选输入。
或者至少mysqliescapestring输入
如果您的php页面有一个类似于这个.../page.php?id=10的值,那么请检查这个值&确保它是整数,如下所示
if(is_numeric($_GET['id'])){ //do operations...}else { //suspicious input given by someone so exit}2)限制查询执行时间
由于您有长时间运行的查询(由黑客执行),然后限制查询执行时间,使用语句超时,wait_timeout特性,以便查询将有有限的执行时间。
正如我前面在apache访问日志中所说的,您将发现这些睡眠查询作为GET参数,因此,找到它并阻止该ip
https://stackoverflow.com/questions/30832194
复制相似问题