我的客户在123-reg共享主机上有一个网站。123-reg在其默认php.ini中有一个非标准实现设置display-errors = on。在我使用过的其他主机上,默认设置为Off。123-reg不允许你在共享主机上覆盖它。
PHP手册中提到了display-errors“这是一个支持你的开发的特性,不应该在生产系统(例如连接到互联网的系统)上使用。”请看http://www.php.net/manual/en/errorfunc.configuration.php#ini.display-errors,我相信这是因为可能会显示文件路径等,这会产生不安全的漏洞。
我已经要求123-reg要么更改其默认值,要么允许覆盖。他们的反应总是一样的,升级到VPS,在那里它可以被覆盖。他们似乎没有意识到这对我和他们共享主机的其他PHP用户来说是一个风险。(他们甚至说,更改它会使其他共享网站无法正常工作!)
这有多大的风险?我应该把网站移到更安全的主机上吗?
发布于 2013-05-22 17:28:24
虽然这可能更多的是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);这不是最好的解决方案,但应该关闭代码中的所有内容
发布于 2013-05-23 04:24:03
除了@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发布于 2014-03-17 17:55:43
实际上,您可以使用php.ini文件关闭错误报告。只需创建文件,将其放在您的托管空间中需要关闭此功能的位置,并在其中添加以下行:
display_errors =关闭
你可以像这样改变大多数的php设置。至于安全性,我认为它们是共享主机平台所能得到的最安全的-如果我是你,我不会真的担心这一点。
https://stackoverflow.com/questions/16687893
复制相似问题