wav*_*ode 17 php security webserver
我最近对PHP 5.4的内置网络服务器感到好奇.从表面上看,虽然相当准系统,但有足够的工作,有可能将传统上依赖于单独的Web服务器的PHP应用程序(如WordPress)作为独立脚本分发,您可以运行php -S localhost:80 app.php(或者更可能的话,'./wordpress.sh').他们甚至可能附带自己的PHP解释器,它具有应用程序所需的所有功能,这样就无需针对许多不同版本的语言.
它在某种程度上重新发明了轮子,但它肯定会增加可移植性并降低最终用户的复杂性.
但是,我在文档页面上看到以下内容:
此Web服务器旨在帮助应用程序开发.它也可用于测试目的或在受控环境中运行的应用程序演示.它不是一个功能齐全的Web服务器.它不应该在公共网络上使用.
这显然会引用诸如正确的文件系统安全性和提供正确的HTTP头之类的问题,这些问题可以通过.但是,还有更多吗?在无法解决的生产环境中使用PHP的内置Web服务器是否存在固有的安全问题和/或技术限制?如果是这样,他们是什么?
Bra*_*rad 16
我可以想到很多操作问题,为什么你不想这样做:
但是,有一个解决方案,您可以通过其内置的Web服务器获得运行PHP的大部分好处,同时获得预先运行Web服务器的大部分好处.也就是说,您可以使用像Nginx这样的服务器作为PHP内置Web服务器的反向代理.在这种情况下,HTTP成为FastCGI的替代品,类似于Node.js应用程序中内置HTTP服务器的常见用法.
现在,我不能在文档中说出警告的细节,因为我不是PHP作者之一.如果是我,我不会因为上述原因单独运行PHP,但我可能会考虑在像Nginx这样的真实Web服务器后面运行它.对我而言,使用PHP-FPM设置PHP并没有那么困难,我会考虑内置服务器的适航性,该内置服务器仅供测试使用.
PHP的内置Web服务器的问题在于它是单线程的!
这具有性能和安全隐患.性能影响显然是一次只能提供一个用户(直到一个请求完成,另一个请求无法启动).
安全问题是DOS服务器非常容易,使用一个简单的开放式套接字,可以发送少量数据(类似于Slow Loris).
它对于没有拒绝服务风险的简单,单页,非交互式应用程序非常有用.
| 归档时间: |
|
| 查看次数: |
5744 次 |
| 最近记录: |