3

我在 codeigniter 框架中创建了一个项目并将其上传到主机,主机表示该站点正在快速填充服务器的日志文件。

所以我检查了错误日志,对于我收到的每个请求:

error_reporting() has been disabled for security reasons /index.php on line 36
set_error_handler() has been disabled for security reasons /system/core/CodeIgniter.php on line 72

我问主持人是否可以打开这些选项,因为 codeigniter 需要它们来处理错误,但他们回答说我必须编辑我的代码才能在他们的服务器上禁用这些功能。

我不想编辑codeigniter的核心文件,我真的不明白为什么它被禁用。你们中的任何人都知道解决此错误的简单解决方案,或者一些参数告诉主机为我更改此设置吗?

4

1 回答 1

0

Web 主机可能禁用该error_reporting功能的原因是为了防止错误的 PHP 程序向最终用户输出崩溃消息,黑客可以利用这些消息来计算如何访问服务器。PHP 崩溃消息包含许多可能对黑客有用的详细信息,包括目录路径和有关正在使用的框架软件的信息。

禁用生产站点的错误报告通常被认为是一种很好的做法,这样这些消息就不会显示给最终用户。打开它进行开发,关闭它进行生产。

这解释了您的主机禁用它的原因。

至于如何防止“错误报告禁用”消息进入日志:好吧,不幸的是,你不能,除非你编辑代码以删除对error_reporting.

CodeIgniter 手册包含此页面:http ://ellislab.com/codeigniter/user-guide/general/errors.html

在此页面上,它声明error_reporting代码位于 中index.php,并且他们鼓励您对其进行编辑,以在您的代码投入生产后停止报告错误。

换句话说,CodeIgniter 说:“请改变这个”。所以不要担心不想改变核心文件(index.php反正不是真正的核心文件)。

于 2013-01-16T11:24:57.493 回答