错误的权限和错误的所有权

错误的权限和错误的所有权

我创建了几个网站,其中一些目录设置为权限 755,并将所有者设置为“www-data”,将组设置为“www-data”。

这样我就可以防止将这些目录的权限设置为 777,但仍然使网络服务器可以写入缓存文件、用户上传等内容。

现在这些目录中的几个文件已被注入恶意的 javascript 代码。

经过一些日志研究后,我认为黑客扫描了我的服务器并找到了具有确切权限的文件,并且能够编辑这些文件并向其中注入代码。

看来我的方法非常不安全,因为这些网站在运行的应用程序方面有很大差异。这让我认为不安全的不是某个特定的上传脚本,而是与我的权限设置有关。

你知道我如何保护这些目录,以便服务器可以在其中写入,但又可以防止恶意的 javascript 代码注入吗?

  • 服务器操作系统:Debian Lenny
  • 网络服务器:Apache 2.2
  • 编程:PHP 5

答案1

如果没有更多的信息,我无法肯定地说,但是如果你希望你的网络服务器能够写入这些目录,并且你已经将所有权更改为www-data(我认为是运行 apache 的用户),700这就足够了,因为该用户已经是所有者,而且它更安全。

但如果恶意软件来自不安全的上传脚本正在运行(将与该用户一起运行),那么这种措施将无济于事,无论如何您都必须修复该脚本。

您还应该检查您的 php 配置文件(通常php.ini)和您的 apache 配置,并调整两者以提高安全性。

希望这有帮助,祝你好运。

答案2

您的问题很可能不是在文件系统级别。

如果您认为黑客入侵了服务器并编辑了一些文件,那么您应该阻止黑客进入机器,而不仅仅是阻止她编辑某些文件。

罪魁祸首可能就在你的 Web 应用程序中。有很多有趣的东西可以阅读BadwareBusters.org

答案3

设置所有者以www-data使目录和文件可由您的 Web 服务器写入。仅为您希望 Web 服务器写入的目录设置此所有权。配置服务器不从这些目录运行活动代码。

注入可能来自您在系统上运行的活动代码。您可能希望将对 javascript 文件的访问限制在 Web 服务器无法写入的目录中。

安排定期对 Web 服务器可以写入的目录进行恶意软件扫描。这应该只是缓存和上传目录。

相关内容