使用apache用户(www-data)执行脚本不安全?当代的设置是什么样子的?



我的脚本(php, python等)和Linux系统上其他用户的脚本由apache用户www-data执行。如果我说错了,请纠正我,但这可能会导致一些尴尬的情况:

  1. 我可以通过使用脚本读取其他用户脚本的源代码。我可能找到硬编码的数据库密码。
  2. 由脚本编写和上传的文件归www-data所有,脚本所有者可能无法读取或不可删除。
  3. 用户希望他们的上传文件夹可以被www-data写入。使用一个脚本,我现在可以写入到其他用户的上传目录。
  4. 对这些权限问题感到沮丧的用户将开始将文件和目录权限设置为777(只需查看Wordpress支持论坛…)
  5. 一个可利用的脚本足以危及所有其他用户。操作系统文件权限安全并不能帮助控制损害。

那么现在人们是如何处理这个问题的呢?在不削弱传统的基于文件权限的安全性的情况下,在共享系统上支持多个web框架的合理(架构正确)方法是什么?使用fastCGI仍然是要走的路吗?当代接口(wsgi)和性能策略是如何适应的?

谢谢你的提示!

据我所知,如果我错了,请纠正我!

广告1。- 4。使用wsgi,您可以根据每个进程更改并因此限制用户/组。http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives WSGIDaemonProcess

广告5。使用wsgi,您可以隔离进程。http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives WSGIProcessGroup

quote from mod_wsgi-page:Apache 2提供的另一种操作模式。UNIX上的X是'daemon'模式。这种模式的操作方式与FASTCGI/SCGI解决方案类似,即可以将不同的进程专用于运行WSGI应用程序。然而,与FASTCGI/SCGI解决方案不同,在实现WSGI应用程序时,既不需要单独的进程监视器,也不需要WSGI适配器,一切都由mod_wsgi自动处理。

由于处于守护模式的WSGI应用程序在它们自己的进程中运行,因此对用于提供静态文件和使用PHP、Perl或其他语言的Apache模块的主机应用程序的正常Apache子进程的影响大大减少。如果需要,守护进程也可以作为独立用户运行,以确保WSGI应用程序不会相互干扰或访问它们不应该访问的信息。"

你的观点都是正确的。第1、3和5点可以通过在Apache配置中设置open_basedir指令来解决。第2条和第4条确实很烦人,但通过web应用程序上传的文件也可以(希望)通过相同的应用程序删除。

最新更新