如何防止使用 .htaccess 或自定义 php.ini 覆盖设置
如何确保用户无法使用 .htaccess 或自定义 php.ini 覆盖设置 我应该使用的任何配置提示
How to make sure the user cannot override the setting using .htaccess or custom php.ini
any tips for configuration i should use
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为了防止用户在 .htaccess 文件中设置 PHP 配置值,请不要授予其虚拟主机上的
AllowOverride Options
权限。或者,将 PHP 安装为 CGI 而不是 Apache 模块,因为 CGI 版本不受 .htaccess 文件的影响。但是,从 PHP 5.3.0 开始,PHP CGI 确实会解析每个目录的 php.ini 文件。我不知道有什么方法可以关闭此功能。
编辑:我刚刚在最新的默认 php.ini 中看到了这一点:
因此,如果您将指令放在主 php.ini 中的每个目录标题下,则它们不能被覆盖。然而,缺点是您必须为每个虚拟主机执行此操作,因此在有许多虚拟主机或经常添加新主机的环境中,它将成为 PITA。
再次编辑:
进一步阅读揭示了这一点:
因此只需取消注释最后一行即可禁用每用户 ini 文件。 :-)
To prevent users setting PHP config values in .htaccess files, do not give
AllowOverride Options
permissions on their virtual hosts.Alternatively, install PHP as CGI instead of as an Apache module, as the CGI version is unaffected by .htaccess files. However, since PHP 5.3.0, PHP CGI does parse per-directory php.ini files. I am not aware of a method that turns this off.
EDIT: I've just seen this in the latest default php.ini:
So if you put directives in your main php.ini under per-directory headings they cannot be overridden. However, the downside is that you'll have to do this for every virtual host so it'll be a PITA in environments where there are many or where new ones are frequently added.
EDIT AGAIN:
Further reading has revealed this:
So just uncomment that last line to disable per-user ini files. :-)