PHP error_reporting vs. display_errors

8

Ist error_reporting(0) gleich wie ini_set('display_errors', 0) ? Wenn nicht, was ist der Unterschied?

Ich bin auch an der Sicherheitsseite dieses Codes interessiert? Kann ich ' erreichen, damit böswillige Benutzer damit nicht umgehen können?

    
mgulan 02.05.2014, 20:39
quelle

1 Antwort

19

Sie sind NICHT die gleichen, aber in Ihrer Verwendung kann das gleiche Ergebnis haben.

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

  2. display_errors gibt an, ob diese Fehler (Ausgabe an Browser, CLI usw.) angezeigt werden sollen, die von 1 gemeldet werden.

Wenn Sie error_reporting(E_ALL) und ini_set('display_errors', '0') festlegen, können Sie immer noch alle Fehler in der Protokolldatei anzeigen, die jedoch nicht angezeigt werden.

Mit error_reporting(0) werden keine Fehler angezeigt oder im Protokoll angezeigt und die Werte von display_errors sind nicht von Bedeutung.

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.

    
AbraCadaver 02.05.2014, 20:53
quelle

Tags und Links