好的,所以我的服务器上周被黑了。黑客攻击了一个过时的 3rd 方编辑器(在 php 中)并在 PHP 中植入了一个后门脚本,并对我的网站造成了严重破坏。我花了整个周末清理他留在我服务器上的后门脚本和任何恶意代码。为了避免再次被黑客入侵,我对我的服务器做了以下操作:
在 PHP 中关闭 file_upload。由于被黑者通过PHP上传后门,我在php.ini中禁用了该功能。所以现在我只能通过ftp上传。
在 php 中禁用 create_function。我的软件都没有使用这个功能。黑客以与 eval() 相同的方式使用此函数以字符串形式执行命令。
在 php.ini 中禁用 popen、exec、system、passthru、proc_open、shell_exec、show_source、phpinfo。这些函数主要被后门脚本用来修改我的文件和目录。
安装 suhosin。找到在 eval() 中调用的合法函数,将它们放在 suhosin.executor.eval.whitelist 中。黑客将恶意代码放入我的程序中,并用base64_encode对其进行模糊处理,然后在eval()中执行。所以我只允许在 eval() 中调用几个合法的函数。
打开 suhosin.executor.disable_emodifier。黑客在我的程序中放置了另一个模糊代码,并使用 preg_replace() e 修饰符来执行他在浏览器上放置的任何 php 命令。所以他可以通过浏览器上传或修改服务器上的任何文件。(由于我关闭了file_upload,他不能再上传了,但他仍然可以随意修改和删除文件)。
通过禁用 create_function、preg_replace() e 修饰符和限制 eval(),即使我的服务器上还有未清理的恶意代码,黑客也无能为力。这些是 PHP 中最危险的 3 个函数。
- 将 .htaccess 添加到除根目录之外的每个文件夹,并禁止 PHP 直接从浏览器执行:
命令拒绝,允许所有人拒绝
我在 Php 之后放了另一个 *,因为我发现了一个名为 missing.php.DISABLED 的后门文件,如果我不在 php 之后放 *,它仍然可以执行
将根目录(允许执行 .php 的唯一位置)设置为只读。将该文件夹中的所有文件设置为只读。因此黑客无法将任何新的后门脚本上传到唯一可以执行 php 的目录。他也不能修改该目录中的文件。
对于wordpress登录,我添加了
命令拒绝,允许所有人拒绝
允许来自 xxx.xxx.xxx.xxx
到根目录下的.htaccess,其中xxx.xxx.xxx.xxx是我的ip。
- 将所有 .htaccess 设置为只读。
好吧,这就是我可以做的,以加强我的服务器的安全性。我错过了什么吗?
感谢您的意见。