【问题标题】:Set PHP error_handler on server side在服务器端设置 PHP error_handler
【发布时间】:2013-11-17 15:02:39
【问题描述】:

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

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

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

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

任何想法都会有帮助!

更新

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

【问题讨论】:

  • 我认为如果不使用 safe_mode,您实际上无法使第三方 PHP 代码安全。即便如此,这样做也是PIA。简而言之,任何可以控制 PHP 代码的人都可能破坏您的安全。

标签: php security ini-set


【解决方案1】:

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

php_value auto_prepend_file prepend.php

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

<?php

set_error_handler('yourHandler');

/* EOF */

并且只给这个脚本使用set_error_handler()函数的权利。

【讨论】:

  • 我正在使用 Apache 和 mod_php,所以我认为我不能在 php.ini 中使用 [PATH]
猜你喜欢
  • 1970-01-01
  • 2013-01-14
  • 2022-01-16
  • 1970-01-01
  • 2012-09-18
  • 1970-01-01
  • 2019-03-29
  • 1970-01-01
  • 2021-02-09
相关资源
最近更新 更多