好吧,所以我的服务器上周被黑了。黑客袭击了过时的第三方编辑器(在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个函数。
- 直接从浏览器中执行到每一个文件夹,但根目录和禁止PHP添加的.htaccess:
订单拒绝,允许 所有
我把另一个拒绝*腓后,因为我发现,被命名为missing.php.DISABLED后门文件,如果我不把PHP在此之后仍然可以被执行*
将根目录(唯一允许执行.php的地方)设置为只读。将该文件夹中的所有文件设置为只读。所以黑客无法将任何新的后门脚本上传到php可执行的唯一目录。他也不能修改该目录中的文件。
对于WordPress的登录,我加
订单拒绝,允许 拒绝所有
允许xxx.xxx.xxx。xxx
到根目录中的.htaccess,其中xxx.xxx.xxx.xxx是我的ip。
- 将所有.htaccess设置为只读。
嗯,这是我能做的,以加强我的服务器的安全。我错过了什么吗?
谢谢您的建议。
那么你是在保护你自己吗? – zerkms
没人知道你有什么其他可利用的漏洞。大部分问题出现在您编写的代码中,而不一定是服务器配置。 – deceze
关于_“从现在开始,我将始终让我的第三方代码保持最新状态”部分在哪里?这仍然不是一个保证,但如果有任何教训需要学习,就是这样。 – Halcyon