频道栏目
首页 > 资讯 > 错误报告 > 正文

PHP安全编程:不要让不相关的人看到报错信息–关于错误报告

16-01-08        来源:[db:作者]  
收藏   我要投稿
PHP安全编程:不要让不相关的人看到报错信息 关于错误报告 !!!没有不会犯错的开发者,PHP的错误报告功能可以协助你确认和定位这些错误,可以提供的这些错误的详细描述,但如果被恶意攻击者看到,这就不妙了。不能让大众看到报错信息,这一点很重要。做到这一点很容易,只要关闭display_errors,当然如果您希望得到出错信息,可以打开log_errors选项,并在error_log选项中设置出错日志文件的保存路径。

由于出错报告的级别设定可以导致有些错误无法发现,您至少需要把error_reporting设为E_ALL。E_ALL | E_STRICT 是最高的设置,提供向下兼容的建议,如不建议使用的提示。

所有的出错报告级别可以在任意级别进行修改,所以您如果使用的是共享的主机,没有权限对php.ini, httpd.conf, 或 .htaccess等配置文件进行更改时,您可以在程序中运行出错报告级别配置语句:


  1. <?php
  2. ini_set('error_reporting', E_ALL | E_STRICT);
  3. ini_set('display_errors', 'Off');
  4. ini_set('log_errors', 'On');
  5. ini_set('error_log', '/usr/local/apache/logs/error_log');
  6. ?>

http://php.net/manual/ini.php 对php.ini的选项配置作了详尽的说明。
set_error_handler() 函数

PHP还允许您通过 set_error_handler( ) 函数指定您自已的出错处理函数:


  1. <?php
  2. set_error_handler('my_error_handler');
  3. ?>

上面程序指定了您自已的出错处理函数my_error_handler()。下面是一个实际使用的示例:


  1. <?php
  2. function my_error_handler($number, $string, $file, $line, $context)
  3. {
  4. $error = "= == == == ==\nPHP ERROR\n= == == == ==\n";
  5. $error .= "Number: [$number]\n";
  6. $error .= "String: [$string]\n";
  7. $error .= "File: [$file]\n";
  8. $error .= "Line: [$line]\n";
  9. $error .= "Context:\n" . print_r($context, TRUE) . "\n\n";
  10. error_log($error, 3, '/usr/local/apache/logs/error_log');
  11. }
  12. ?>

PHP 5还允许向set_error_handler( )传递第二个参数以限定在什么出错情况下执行出定义的出错处理函数。比如,现在建立一个处理告警级别(warning)错误的函数:


  1. <?php
  2. set_error_handler('my_warning_handler', E_WARNING);
  3. ?>
相关TAG标签
上一篇:PHP防止post重复提交数据的简单例子
下一篇:php黄金组合的区别与联系
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站