值得一读
安全预防措施 & 防止滥用
PHPsuexec 的实施
如您所知,我们喜欢尽可能简洁地介绍新概念。目标始终是简洁的解释,不得有混淆的空间。然而,解释 phpsuexec 无疑需要较长的篇幅。
具体发生了什么?
我们将逐步让所有旧服务器使用 phpsuexec。新服务器将从起步时就有(从 SH88 和 Pass48 + 开始)。我们将对旧服务器应用此更改,但每次只会对少量服务器进行。
解释 PHPsuexec 是什么
在大多数 Apache 服务器上,PHP 以 Apache 模块的形式运行。这是默认方式。这也是为什么钓鱼诈骗(eBay/PayPal 钓鱼,在线银行诈骗)如此猖獗。骗子在网上寻找漏洞,如果他们找到的服务器有这种配置,那就极其容易。大多数主机都采用这种配置,因为他们没有意识到“并不一定必须这样”以及有一种更好的方法。我们必须帮助阻止这种滥用并保护我们的服务器。
这将提高您服务的质量。如何?所有脚本都将使用账户用户名而不是“nobody”执行。这对我们为什么很重要
如果我们发现某些账户正在运行恶意脚本并导致服务器崩溃,我们可以快速找到详细信息。不再需要通过日志进行繁琐且耗时的搜索和路径比较。如果服务器正在发送垃圾邮件,我们可以快速找到确切路径并停止以避免服务器上的邮件问题/错误。我们还希望成为其他主机尊敬的榜样,最重要的是,成为您可以引以为豪的主机。我们觉得现在是时候实施这项新政策了,尽管这个想法已经在我们的滥用处理团队中讨论了一年以上。如果您以前从未听说过 phpsuexec(当然,您可能确实没有听说过),我们希望您能欢迎这个,甚至将它作为您主机服务的要求。
希望对 phpsuexec 的介绍清晰明了。
现在,让我们深入了解……
PHPsuexec 详细信息
1. 777 权限
旧配置:当PHP作为Apache模块运行时,它将以网页服务器的用户/组运行,通常为“nobody”。在这种模式下,你需要PHP脚本写入的文件或目录需要有777权限(用户/组/世界级别的读写执行)。这并不安全,因为它不仅允许网页服务器写入文件,还允许其他人读取或写入文件。这让你不禁要问,为什么这始终是默认的方式?
新配置 - PHPsuexec:开启suexec功能的CGI下运行的PHP - 你的PHP脚本现在将在你的用户/组级别执行。你要求PHP脚本写入的文件或目录不再需要777权限。实际上,在你脚本或它们所在目录上拥有777权限将不会运行,并且在尝试执行它们时将导致500内部服务器错误,以保护你免受他人滥用脚本。你的脚本和目录可以具有最大755权限(你读写执行,其他人读执行)。
2. 再见 .htaccess,你好 .ini
在旧的Apache模块模式下,你可以在脚本目录中放置一个名为 .htaccess 的文件来自动配置PHP设置。
例如,你可以通过在 .htaccess 文件中添加以下行来关闭 "magic_quotes_gpc" PHP设置
php_value magic_quotes_gpc on
当PHP作为CGI/phpsuexec运行时,虽然可以通过其他方式操纵PHP设置,但是不能通过 .htaccess 完成。当尝试访问脚本时,使用 .htaccess 并且在其中包含 php_value 条目会导致500内部服务器错误。这是因为PHP不再作为Apache模块运行,Apache将不再处理那些指令。
应从你的 .htaccess 文件中删除所有 PHP 值以避免500内部服务器错误。创建一个 php.ini 文件来操纵PHP设置将解决问题。
3. 关于 php.ini
php.ini文件是什么?我如何创建一个?
php.ini 文件是服务器查看以确定哪些选项已被开启、关闭或设置为一个不同于默认值的配置文件。虽然对于不了解它的人来说可能显得专业,但它其实就是一个名为 php.ini 的文本文件。
要创建 php.ini 文件,只需打开文本编辑器,添加所需的行,保存文件。在保存文件时,你可以命名任何你想的名字。一旦完成,将文件上传到脚本所在的目录,并将其重命名为 php.ini。
例如,你可以通过在 php.ini 文件中添加以下行来关闭 "magic_quotes_gpc" PHP 设置
magic_quotes_gpc = no
4. 故障排除
救命!我的PHP脚本不起作用,或者我收到了错误信息。
1. 检查你尝试执行的PHP脚本的权限,不要超过755 - 通常情况下,755或644将会工作得很好,这通常不需要更改。
2. 检查脚本所在目录的权限设置,最高不要超过755。这也包括脚本需要访问的其他目录。
3. 检查你是否有带有php_values的 .htaccess 文件。它们会使尝试执行脚本时出现500内部服务器错误。
需要从你的 .htaccess 文件中删除 php_values 并放置一个 php.ini,其中包含上述解释的PHP指令。
原始链接
php.ini文件 ??
我认为以下内容并不正确。
引用
我在一个运行phpsuexec的共享服务器上运行了phpinfo(),并保存了设置。然后在站点的网站根路径中添加了(很小的)3行php.ini,再次运行了phpinfo(),并保存了输出。
对比了两份报告,许多php设置都不同,不仅是已被更改的3处。
请参阅http://www.washington.edu/computing/web/publishing/php-ini.html ,一篇好文章,以及其中的评论..
引用
当然,服务器的配置可能也是一个因素。