【问题标题】:Checking MySQL Logs for Possibility of Performance Issues/DOS attack检查 MySQL 日志是否存在性能问题/DOS 攻击的可能性
【发布时间】:2011-01-14 10:52:30
【问题描述】:

我们的大部分网站都是用 PHP 编写的,并且经常使用 MySQL 数据库连接。我们目前在我们的专用服务器上遇到了一个主要的性能问题。访问我们的服务器时,它会非常缓慢地加载网页,并且通过 SSH 连接到机器需要很长时间。我们已经重新启动了几次,几分钟后问题又出现了。

我们的网络主机 (MidPhase) 表示这可能与 DOS 攻击有关,他们将在 CiscoGuard 上放置我们的专用服务器 24 小时并检查我们的服务器日志以验证是否是这种情况。

我担心我们可能有一些编码不佳的 PHP 脚本被利用。

如何在服务器范围内检查可能由 PHP/MySQL 注入漏洞引起的问题?

谢谢你, 泰根

【问题讨论】:

  • 看来我找到了罪魁祸首。我使用了“ps aux”,发现 mysql 占用了我们 24% 的 CPU。然后我查看了 mysql 运行进程,发现我们的一个客户受到了打击。这是一个使用旧版本 Drupal 的客户端,有人试图强制登录。我完全禁用了该网站,现在事情似乎运行得更好了。有人没有及时更新安全补丁的经典案例。

标签: php mysql


【解决方案1】:

我会检查访问日志中是否存在异常请求(特别是那些指示 SQL 注入或对相同 url 的大量请求),并且启用 MySQL 的慢查询日志可能很有用,因为它可以让您看到任何可以执行的繁重查询表明有人倾倒了您的数据库,或者您自己的代码在查询中表现不佳。

考虑修改慢查询时间值(默认为 10 秒)以获得有价值的日志,而不是空的/臃肿的查询。

使用 mtop 实时检查 MySQL 的性能也可能会有所帮助。

【讨论】:

    【解决方案2】:

    我建议简单地检查任何 PHP,并确保查询被转义(或使用绑定),并且您正在过滤可能的 XSS 攻击。

    【讨论】:

      【解决方案3】:

      假设您使用 LAMP 设置,我会从类似的东西开始

      $ top
      

      $ ps aux
      

      查看哪个进程正在使用大量资源。它可以是 php / mysql,但也可以是邮件服务器或垃圾邮件过滤器(仅作为示例,如果您在同一台服务器上运行)。

      【讨论】:

      • 是的,它是 LAMP 设置。假设在我运行上述命令后,我看到 mysql 正在使用大量资源。我怎样才能深入挖掘并检查单个 PHP 页面可能导致问题。
      • 那是一个棘手的问题,我记得找了那个但没有找到。除了检查 httpd 日志中哪些页面的加载量超过正常值之外,我只能建议在 serverfault.com 上提出相同的问题。对不起。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-07
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多