Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Sicherheit – Fehlerberichterstattung

PHP-Sicherheit – Fehlerberichterstattung

黄舟
黄舟Original
2017-02-23 09:24:241160Durchsuche


Fehlerbericht

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(&#39;error_reporting&#39;, E_ALL | E_STRICT);
  ini_set(&#39;display_errors&#39;, &#39;Off&#39;);
  ini_set(&#39;log_errors&#39;, &#39;On&#39;);
  ini_set(&#39;error_log&#39;,
&#39;/usr/local/apache/logs/error_log&#39;);
 
  ?>


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(&#39;my_error_handler&#39;);
 
  ?>

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,
&#39;/usr/local/apache/logs/error_log&#39;);
  }
 
  ?>

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(&#39;my_warning_handler&#39;,
E_WARNING);
  ?>

Das Obige ist der Inhalt des PHP-Sicherheitsfehlerberichts Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn