我的客户在123-reg共享主机上有一个网站。 123-reg在其默认的php.ini中有一个非标准的display-errors = on实现设置。我使用的默认和其他主机是Off。 123-reg不允许您在共享主机上覆盖它。
PHP手册说明了显示错误“这是一项支持您的开发的功能,不应该用于生产系统(例如连接到互联网的系统)。”见http://www.php.net/manual/en/errorfunc.configuration.php#ini.display-errors 我相信这是因为可能会显示文件路径等,这会产生一个不安全的漏洞。
我已经要求123-reg更改默认值或允许覆盖。他们的反应始终相同,升级到可以覆盖的VPS。他们似乎并不认为这对我和其他PHP用户的共享托管风险。 (他们甚至说改变它会阻止其他共享网站工作!!!)
这有多大风险?我应该将网站移动到更安全的主机吗?
答案 0 :(得分:1)
虽然这可能是server fault而不是这里的问题,但我想说我不认为我会选择任何未将PHP配置为生产用途的托管公司。
display_errors
应关闭,然后您可以根据需要使用ini_set
但是,如果您的客户端不能/不会离开他们当前的主机,请尝试在每个文件顶部的包含中使用以下内容。
error_reporting(0); // to disable all errors
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
它不是最好的解决方案,但应该在代码中关闭所有内容
答案 1 :(得分:0)
@fullybaked以外的其他解决方案是从.htaccess
设置error_reporting / display_errors(如果主机允许)。
尝试类似:
php_flag display_errors off
php_value error_reporting {value}
要获得{value},请查看以下示例:
echo E_WARNING & ~E_NOTICE; // 2
echo E_ALL; // 32767
答案 2 :(得分:0)
实际上,您可以使用php.ini文件关闭错误报告。只需创建文件,将其放在您需要关闭的主机空间中,并在其中添加以下行:
display_errors = Off
您可以更改大部分的PHP设置。至于安全性,我认为它们像共享托管平台一样安全 - 如果我是你,我真的不担心这个。