当前位置:  开发笔记 > 编程语言 > 正文

apache模块与cgi(关于安全性)之间有区别吗?

如何解决《apache模块与cgi(关于安全性)之间有区别吗?》经验,为你挑选了3个好方法。

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

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



1> X-Istence..:

安全在什么意义上?无论哪种方式,它实际上取决于正在运行的脚本以及它的编写程度.这些天太多的脚本都是半成品,并且没有正确地进行输入验证.

我个人更喜欢FastCGI到mod_php,因为如果FastCGI进程死了,新的进程就会产生,而我看到mod_php会杀掉整个Apache.

至于安全性,使用FastCGI,您可以在技术上在默认Web服务器用户的不同用户下运行php进程.

另外,如果您正在使用Apache的新工作线程支持,您将需要确保不使用mod_php,因为某些扩展不是线程安全的并且会导致竞争条件.



2> djn..:

如果你运行自己的服务器去模块方式,它会更快.如果您在共享服务器上,则已经为您做出了决定,通常是在CGI方面.原因是文件系统权限.PHP作为一个模块运行时具有http服务器的权限(通常是'apache'),除非你可以将脚本chmod到该用户,你必须将它们chmod到777 - 世界可读.这意味着,您的服务器邻居可以查看它们 - 想一想存储数据库访问密码的位置.大多数共享服务器使用像phpsuexec这样的东西来解决这个问题,这些东西使用脚本所有者的权限运行脚本,所以你可以(必须)将代码chmoded到644. Phpsuexec只运行PHP作为CGI - 这或多或少全部,它'



3> Vinko Vrsalo..:

大多数安全漏洞都是由于脚本本身的糟糕编程而发生的,所以如果它们作为cgi或模块运行它们真的没什么问题.也就是说,apache模块可能会崩溃整个网络服务器(特别是如果使用线程MPM)并且mod_php有点着名.

cgi会慢一点,但现在有解决方案,主要是FastCGI和朋友.

你的威胁模型是什么?

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有