例如使用mod_php
比使用php-cgi
更安全吗?或者使用mod_perl
而不是传统的cgi-scripts
更安全
我主要对安全问题感兴趣,但如果存在重大差异,速度可能会成为一个问题。
发布于 2008-09-16 23:02:53
什么意义上的安全性?无论哪种方式,这实际上取决于正在运行的脚本以及脚本编写得有多好。现在有太多的脚本是半途而废的,并且不能正确地进行输入验证。
我个人更喜欢FastCGI而不是mod_php,因为如果一个FastCGI进程死亡,一个新的进程将会产生,而我已经看到mod_php杀死了整个Apache。
至于安全性,使用FastCGI,从技术上讲,你可以在不同于默认web服务器用户的用户下运行php进程。
另外,如果你正在使用Apache的新的worker线程支持,你需要确保你没有使用mod_php,因为一些扩展不是线程安全的,并且会导致竞争条件。
发布于 2008-09-16 23:19:41
如果你用模块化的方式运行你自己的服务器,它会更快一些。如果您在共享服务器上,那么已经为您做出了决定,通常是在CGI端。原因是文件系统权限。PHP作为一个模块以http服务器(通常是'apache')的权限运行,除非您可以将脚本chmod到该用户,否则必须将它们chmod到777 - world readable。这意味着,唉,您的服务器邻居可以查看它们-想想您将数据库访问密码存储在哪里。大多数共享服务器已经使用phpsuexec之类的东西解决了这个问题,它们以脚本所有者的权限运行脚本,因此您可以(必须)将代码更改为644。Phpsuexec只能运行PHP作为CGI -这或多或少是所有的,它只是一个本地机器的事情-对整个世界没有什么不同。
发布于 2008-09-16 22:52:55
大多数安全漏洞是由于脚本本身的糟糕编程造成的,所以如果它们作为cgi或在模块中运行,这实际上是没有意义的。也就是说,apache模块可能会使整个the服务器崩溃(特别是在使用线程MPM的情况下),而mod_php也因此而出名。
cgi会更慢,但现在已经有了解决方案,主要是FastCGI和朋友。
您的威胁模型是什么?
https://stackoverflow.com/questions/78108
复制相似问题