무결한 개발자는 없습니다. PHP 오류 보고 기능은 이러한 오류를 식별하고 찾는 데 도움이 됩니다. PHP에서 제공하는 이러한 자세한 설명은 악의적인 공격자에게도 표시될 수 있으므로 좋지 않습니다. 오류 메시지가 대중에게 보이지 않는 것이 중요합니다. 물론, 오류 정보를 얻으려면 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'); ?>
팁
http://www.php.cn/ 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( )는 정의된 오류 처리 기능이 실행되는 오류 조건을 제한하기 위해 두 번째 매개변수를 전달합니다. 예를 들어, 이제 경고 수준 오류를 처리하는 함수를 만듭니다.
CODE:
<?php set_error_handler('my_warning_handler', E_WARNING); ?>
위는 PHP 보안 오류 보고서의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!