首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >apache模块和cgi (关于安全性)有区别吗?

apache模块和cgi (关于安全性)有区别吗?
EN

Stack Overflow用户
提问于 2008-09-16 22:49:22
回答 6查看 20.5K关注 0票数 17

例如使用mod_php比使用php-cgi更安全吗?或者使用mod_perl而不是传统的cgi-scripts更安全

我主要对安全问题感兴趣,但如果存在重大差异,速度可能会成为一个问题。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-09-16 23:02:53

什么意义上的安全性?无论哪种方式,这实际上取决于正在运行的脚本以及脚本编写得有多好。现在有太多的脚本是半途而废的,并且不能正确地进行输入验证。

我个人更喜欢FastCGI而不是mod_php,因为如果一个FastCGI进程死亡,一个新的进程将会产生,而我已经看到mod_php杀死了整个Apache。

至于安全性,使用FastCGI,从技术上讲,你可以在不同于默认web服务器用户的用户下运行php进程。

另外,如果你正在使用Apache的新的worker线程支持,你需要确保你没有使用mod_php,因为一些扩展不是线程安全的,并且会导致竞争条件。

票数 15
EN

Stack Overflow用户

发布于 2008-09-16 23:19:41

如果你用模块化的方式运行你自己的服务器,它会更快一些。如果您在共享服务器上,那么已经为您做出了决定,通常是在CGI端。原因是文件系统权限。PHP作为一个模块以http服务器(通常是'apache')的权限运行,除非您可以将脚本chmod到该用户,否则必须将它们chmod到777 - world readable。这意味着,唉,您的服务器邻居可以查看它们-想想您将数据库访问密码存储在哪里。大多数共享服务器已经使用phpsuexec之类的东西解决了这个问题,它们以脚本所有者的权限运行脚本,因此您可以(必须)将代码更改为644。Phpsuexec只能运行PHP作为CGI -这或多或少是所有的,它只是一个本地机器的事情-对整个世界没有什么不同。

票数 8
EN

Stack Overflow用户

发布于 2008-09-16 22:52:55

大多数安全漏洞是由于脚本本身的糟糕编程造成的,所以如果它们作为cgi或在模块中运行,这实际上是没有意义的。也就是说,apache模块可能会使整个the服务器崩溃(特别是在使用线程MPM的情况下),而mod_php也因此而出名。

cgi会更慢,但现在已经有了解决方案,主要是FastCGI和朋友。

您的威胁模型是什么?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/78108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档