1

我的客户在 123-reg 共享主机上有一个站点。123-reg 在其默认 php.ini 中有一个非标准的 display-errors = on 实现设置。我使用的其他主机的默认设置是关闭。123-reg 不允许您在共享主机上覆盖它。

PHP 手册中关于显示错误的声明“这是一项支持您的开发的功能,不应该在生产系统(例如连接到 Internet 的系统)上使用。” 请参阅http://www.php.net/manual/en/errorfunc.configuration.php#ini.display-errors 我相信这是因为文件路径等可能会显示,这会造成不安全的漏洞。

我已要求 123-reg 更改其默认值或允许覆盖。他们的反应总是一样的,升级到可以被覆盖的 VPS。他们似乎并不认为这对我和他们共享主机的其他 PHP 用户来说是一种风险。(他们甚至说改变它会阻止其他共享网站的工作!!!)

这是多大的风险?我应该将网站移动到更安全的主机吗?

4

3 回答 3

1

虽然这可能更多是服务器故障而不是这里的问题,但我想说我不认为我会选择没有将 PHP 配置为生产使用的任何托管公司。

display_errors应该关闭,然后您可以在需要时使用ini_set

但是,如果您的客户不能/不会离开他们当前的主机,请尝试在每个文件顶部的包含中使用以下内容。

error_reporting(0); // to disable all errors
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);

它不是最好的解决方案,但应该关闭代码中的所有内容

于 2013-05-22T09:28:23.990 回答
0

@fullybaked 以外的另一种解决方案是设置 error_reporting / display_errors from .htaccess(如果主机允许)。

尝试类似:

php_flag display_errors off

php_value error_reporting {value}

要获取 {value},请查看以下示例:

echo E_WARNING & ~E_NOTICE; // 2 
echo E_ALL; // 32767
于 2013-05-22T20:24:03.297 回答
0

实际上,您可以使用 php.ini 文件关闭错误报告。只需创建文件,将其放在您需要关闭它的托管空间中,然后在其中添加以下行:

display_errors = 关闭

您可以像这样更改大多数 php 设置。至于安全性,我认为它们与共享托管平台一样安全——如果我是你,我真的不会担心这一点。

于 2014-03-17T09:55:43.010 回答