1

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

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

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

所以基本上我们可以禁用这个功能(并确保所有错误都将由默认处理程序记录)或者找到一个解决方案来设置这个服务器端(可能是一个扩展或其他一些技巧)以获得更好的日志记录。

任何想法都会有帮助!

更新

我们将 Apache 与 mod_php 一起使用,因此我们不能使用 [PATH] 来禁用某个脚本的函数。改变这一点并不完全是一种选择。

4

1 回答 1

0

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

php_value auto_prepend_file prepend.php

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

<?php

set_error_handler('yourHandler');

/* EOF */

并且只给这个脚本使用该set_error_handler()功能的权利。

于 2013-11-06T11:39:53.343 回答