首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Php+MySql应用程序的慢响应

Php+MySql应用程序的慢响应
EN

Stack Overflow用户
提问于 2015-06-14 17:07:30
回答 1查看 818关注 0票数 0

我正在运行一个聊天室([医]佛氏)与mysql+php。我有一个专用的服务器来运行这个脚本,因为它可以消耗大量的资源。它对100个并发用户都很好。然而,最近有一个用户威胁我们要杀死这个聊天室,他正在成功地这样做:

只有40个用户,聊天室已经死了。传递一条信息需要10-20秒。MySql消耗了300%的CPU。然而,对于100个用户(当它没有受到攻击时),聊天室只使用200-300%的CPU。我检查了下面的内容,以确保他没有使用/DDoSing我们的服务器。

代码语言:javascript
运行
复制
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的当前连接:

代码语言:javascript
运行
复制
SHOW STATUS WHERE `variable_name` = 'Threads_connected'

结果只有7个看起来很正常。还有其他的步骤可以阻止他的攻击和保护我的服务器(聊天室)吗?

EN

回答 1

Stack Overflow用户

发布于 2015-06-15 03:15:32

(从最后的注释中)啊,这意味着攻击者正在使用mysql注入尝试一些查询,所以首先您必须

1)净化您的输入

如果您正在使用pdo或mysqli,那么使用bind (准备好的语句)特性来筛选输入。

或者至少mysqliescapestring输入

如果您的php页面有一个类似于这个.../page.php?id=10的值,那么请检查这个值&确保它是整数,如下所示

代码语言:javascript
运行
复制
if(is_numeric($_GET['id'])){ //do operations...}else { //suspicious input given by someone so exit}

2)限制查询执行时间

由于您有长时间运行的查询(由黑客执行),然后限制查询执行时间,使用语句超时,wait_timeout特性,以便查询将有有限的执行时间。

正如我前面在apache访问日志中所说的,您将发现这些睡眠查询作为GET参数,因此,找到它并阻止该ip

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30832194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档