在服务器端设置PHP error_handler

时间:2013-11-06 11:33:45

标签: php security ini-set

我们正在尝试保护大型应用程序(包括一些第三方应用程序),并且我们希望禁用任何允许程序员或潜在黑客隐藏错误的内容(这是因为我们使用一些监视脚本来检查实际的日志时间并确定任何安全漏洞。)

我们已禁用error_reporting,ini_set(以及其他一些功能);我们还安装了php扩展scream来禁用抑制操作符(没有错误显示给用户但是所有内容都被记录)

我们现在正在寻找一个解决方案来设置默认的php error_handler服务器端(而不是像我们现在那样使用set_error_handler)?我们想使用自定义错误处理程序(为了更好地记录错误环境),但我们不希望任何人使用set_error_handler函数来抑制错误。

基本上我们可以禁用此功能(并确保默认处理程序将记录所有错误),或者找到设置此服务器端的解决方案(可能是扩展或其他技巧)以便更好地记录。 / p>

任何想法都会有所帮助!

更新

我们正在使用带有mod_php的Apache,因此我们不能将[PATH]用于某个脚本的disable_functions。改变这不是一个选择。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用在每个请求之前运行的前置脚本

php_value auto_prepend_file prepend.php

在此脚本中,您可以设置错误处理程序:

<?php

set_error_handler('yourHandler');

/* EOF */

并且只允许此脚本使用set_error_handler()函数。