2014-05-02 8 views
8

Ist error_reporting(0) dasselbe wie ini_set('display_errors', 0)? Wenn nicht, was ist der Unterschied?PHP error_reporting vs. display_errors

Ich bin auch an der Sicherheitsseite dieses Codes interessiert? Kann ich damit 'so malicious users can't probe' erreichen?

+1

Der einzige Unterschied ist [this] (http://in3.php.net/manual/en/errorfunc.configuration.php#ini.display-errors): "* Obwohl display_errors zur Laufzeit gesetzt werden kann (mit ini_set()), hat dies keine Auswirkungen, wenn das Skript schwerwiegende Fehler aufweist, da die gewünschte Laufzeitaktion nicht ausgeführt wird. * ". –

+1

@AmalMurali - das gilt für beide Funktionen. PHP-Dateien werden vollständig analysiert, bevor Code in dieser Datei ausgeführt wird. Daher wird jede Funktion, die Sie zur Aktivierung der Fehlerberichterstattung verwenden, * nicht * ausgeführt, wenn in derselben Datei Parse-Fehler auftreten. –

Antwort

19

Sie sind nicht das Gleiche, aber in Ihrer Verwendung kann das gleiche Ergebnis haben.

  1. error_reporting ist die Ebene der Berichterstattung, KEINE durch ALL. Dies bestimmt, welche Arten von Fehlern gemeldet werden (E_NOTICE, E_WARNING, E_ALL, etc ..).

  2. display_errors ist, ob diese Fehler (Ausgabe-Browser, CLI, etc ...) angezeigt werden, die von 1.

berichtet Wenn Sie error_reporting(E_ALL) und ini_set('display_errors', '0') einstellen können Sie alle Fehler immer noch berichtet in der Protokolldatei, aber nicht angezeigt.

Mit error_reporting(0) erhalten Sie keine Fehler angezeigt oder im Protokoll und es spielt keine Rolle, die Werte von display_errors.

display_errors sollte in Ihren Produktionsanwendungen deaktiviert sein, vorzugsweise in php.ini, so dass Informationen wie Dateipfade, Datenbanknamen und Benutzernamen nicht angezeigt werden. Fehlerberichte, die an das Protokoll gesendet werden, sind von Vorteil und sollten kein Sicherheitsrisiko darstellen.

+0

Kann ich diese Sicherheitsaufgabe mit ihnen erledigen? – mgulan

+2

Sie möchten 'display_errors' in Ihrer App oder vorzugsweise' php.ini' deaktivieren. Fehlerberichte, die an das Protokoll gesendet werden, sind von Vorteil und sollten kein Sicherheitsrisiko darstellen. – AbraCadaver