5

我知道保护任何网站都是一个非常艰难和广泛的话题,但我想将这个问题与我一直在努力的特定网站联系起来。它是在 2004 年左右由其他一些程序员用 php 编码的,我负责它的管理。我的问题是它一次又一次地被黑客入侵。当它被黑客入侵时,我注意到了以下事情。

  1. .htaccess文件已被修改
  2. index.phpconfig.php文件被修改
  3. 管理员密码已更改
  4. 在服务器中上传文件
  5. 更改文件和文件夹的文件权限

我已经处理过代码,它已被正确转义,我认为没有 sql 注入的可能性。由于大部分问题与文件和权限有关,我对服务器安全性有疑问,但由于它是在 2004 年左右编码的原因,它肯定会缺乏一些安全性,所以我需要在我的代码中处理哪些其他事情防止我的网站因上述问题而被黑客入侵?

提前致谢。

4

4 回答 4

5

由于文件已被修改,由于 SQL 注入错误,这不太可能发生。

获取文件的可能性:

  • 猜测/窃取您的 FTP 密码
  • 破解服务器(您对此无能为力)
  • 服务器上的隔离不足,这意味着其他客户可以更改您的文件(您也无能为力)
  • 远程代码执行错误

现在,既然您说该网站是从 2004 年开始的,它可能是eval用于模板或include类似的东西site.php?section=foo,然后包含foo.php在某处的代码中,这两者都在 2004 年经常完成。所以我会做一个快速的文件搜索 eval 和正则表达式include(.*\$.*)以及require(.*\$.*). 这些是主要嫌疑人,具体取决于它们的使用方式。

于 2012-06-14T11:16:10.983 回答
3

有人可能直接访问服务器,而不是特别是(a)脚本。这听起来不像是源于代码库的安全问题。

如果这种情况一次又一次地发生,您可能需要考虑将整个站点转移到另一个提供商。从其他地方重新开始,使用新密码、访问控制等。

于 2012-06-14T11:08:25.560 回答
2

OWASP top 10非常好读。我的一些猜测。

  • 有漏洞的过时操作系统。
  • MySQL 注入,可能所有密码都以纯文本形式存储,这非常非常糟糕。对于身份验证,您应该改用 openID 之类的东西。此外,当您进行 MySQL 注入时,您应该尽可能更新代码以使用 PDO(准备好的语句)。
  • 读/写权限设置不正确或 APACHE/PHP 在更高级别运行?

我给你的建议是:

  • 阅读有关 OWASP 的信息。然后清楚地寻找代码中的缺陷。每条线都可能是源问题。也许你应该抛弃旧代码,因为非常不安全?
  • 重新安装你的操作系统,因为你甚至可以有一个rootkit?
于 2012-06-14T12:05:03.750 回答
1
  • 永远不要只使用共享主机,至少使用托管服务器/保持系统最新
  • 检查您的 php.ini 是否存在安全问题(您可以用谷歌搜索)
  • 检查您的 Apache/Nginx/... 配置是否有覆盖
  • 永远不要与服务器进行未加密的通信(使用 SFTP、SSH、...)
  • 永远不要相信外部值(也来自 Cookie),总是逃避/转换那些
  • 过滤用户输入(删除换行符,0x00 字符,标签,......在不需要的地方)
  • 检查服务器/数据库/...的所有可能存在的用户帐户
  • 检查所有服务是否以正确的用户身份运行
  • 检查您的网络文件夹中的文件(写入/执行)权限
  • 转义您在网站上显示的所有内容,甚至不相信您的数据库数据以任何方式安全
  • 如果您使用第 3 方软件,请注意安全建议
  • 重新安装服务器,你可能已经root了
  • 使用准备好的语句

就是这样;)这将大大增强您的安全性,但有经验的攻击者是强硬的。

于 2012-06-30T04:46:39.413 回答