Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Sicherheit – Fehlerberichterstattung
Kein Entwickler ist unfehlbar, PHP Die Fehlerberichterstattung Die Funktion unterstützt Sie bei der Identifizierung und Lokalisierung dieser Fehler. Diese von PHP bereitgestellten detaillierten Beschreibungen können auch von böswilligen Angreifern gesehen werden, was nicht gut ist. Es ist wichtig, dass Fehlermeldungen für die Öffentlichkeit unsichtbar sind. Dies ist ganz einfach: Deaktivieren Sie einfach display_errors. Wenn Sie Fehlerinformationen erhalten möchten, können Sie natürlich die Option log_errors aktivieren und den Speicherpfad der Fehlerprotokolldatei in der Option error_log festlegen.
Da die Einstellung der Fehlerberichtsebene dazu führen kann, dass einige Fehler unentdeckt bleiben, müssen Sie error_reporting auf mindestens E_ALL setzen (E_ALL | E_STRICT ist die höchste Einstellung). Geben Sie Vorschläge zur Abwärtskompatibilität an, z. B. Tipps, die nicht empfohlen werden).
Alle Fehlerberichtsebenen können auf jeder Ebene geändert werden. Wenn Sie also ein Shared Hosting verwenden, haben Sie keine Berechtigung zum Ändern von php.ini, httpd.conf oder Wenn Sie Änderungen an Konfigurationsdateien wie .htaccess vornehmen, können Sie Konfigurationsanweisungen auf Fehlerberichtsebene im Programm ausführen:
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'); ?>
Tipps
http://www.php.cn/ Die Optionskonfiguration von php.ini wird ausführlich erklärt.
PHP ermöglicht Ihnen auch die Übergabe von set_error_handler( ) Funktion gibt Ihre eigene Fehlerbehandlungsfunktion an:
CODE:
<?php set_error_handler('my_error_handler'); ?>
Das obige Programm spezifiziert Ihre eigene Fehlerbehandlungsfunktion my_error_handler( ); Hier ist ein Beispiel für die tatsächliche Verwendung:
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'); } ?>
Klein Tipp
PHP 5 erlaubt auch Setting_error_handler( ) übergibt den zweiten Parameter, um die Fehlerbedingungen zu begrenzen, unter denen die definierte Fehlerbehandlungsfunktion ausgeführt wird. Erstellen Sie nun beispielsweise eine Funktion zur Behandlung von Fehlern der Warnstufe:
CODE:
<?php set_error_handler('my_warning_handler', E_WARNING); ?>
Das Obige ist der Inhalt des PHP-Sicherheitsfehlerberichts Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!