• 技术文章 >后端开发 >php教程

    PHP安全-错误报告

    黄舟黄舟2017-02-23 09:24:24原创508


    错误报告

    没有不会犯错的开发者,PHP的错误报告功能将协助您确认和定位这些错误。可以PHP提供的这些详细描述也可能被恶意攻击者看到,这就不妙了。使大众看不到报错信息,这一点很重要。做到这一点很容易,只要关闭display_errors,当然如果您希望得到出错信息,可以打开log_errors选项,并在error_log选项中设置出错日志文件的保存路径。

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

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

    CODE:

     <?php
     
      ini_set('error_reporting', E_ALL | E_STRICT);
      ini_set('display_errors', 'Off');
      ini_set('log_errors', 'On');
      ini_set('error_log',
    '/usr/local/apache/logs/error_log');
     
      ?>


    小提示

    //m.sbmmt.com/ 对php.ini的选项配置作了详尽的说明。

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

    CODE:

     <?php
     
      set_error_handler('my_error_handler');
     
      ?>

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

    CODE:

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

    小提示

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

    CODE:

     <?php
      set_error_handler('my_warning_handler',
    E_WARNING);
      ?>

    以上就是PHP安全-错误报告的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!


    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:PHP安全-深度防范 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• PHP底层的运行机制与原理_PHP教程• 说一说PHP程序开发中的模板选择_PHP• js表单提交解决方法• php 适用方法积累• 异常求解 大神们
    1/1

    PHP中文网