Lassen Programmierer die Fehlerberichterstattung aktiviert oder deaktiviert?

12

Ich habe mich gefragt, ob PHP-Programmierer die Fehlerberichterstattung in der php.ini nach der Bereitstellung der Website immer wieder ein- oder ausschalten.


quelle

Antworten:

18

Sie sollten die Fehlerberichterstattung, die Protokollierung der wichtigsten Ereignisse und die Überwachung stets fortsetzen. Andernfalls können Sie an dem Tag, an dem Ihre Anwendung aus irgendeinem Grund fehlschlägt, nur schwer herausfinden, was passiert ist.

Die Fehlerberichterstattung muss jedoch intern erfolgen und darf dem Endbenutzer nicht angezeigt werden, da es ein Sicherheitsproblem wäre, vertrauliche Informationen anzuzeigen. Hierfür können Sie display_errorsund log_errorsEinstellungen verwenden: in php.ini-productionwird der erste Wert festgelegt off, während der zweite Wert festgelegt wird on.

Übrigens php.ini-productionbeantwortet bereits Ihre Frage:

; error_reporting
;   Default Value: E_ALL & ~E_NOTICE
;   Development Value: E_ALL | E_STRICT
;   Production Value: E_ALL & ~E_DEPRECATED

Ein anderer Kommentar sagt Ihnen auch, dass:

Standardmäßig wird PHP auf alle Fehler, Hinweise und Warnungen angewendet, mit Ausnahme derer, die sich auf E_NOTICE und E_STRICT beziehen, die zusammen Best Practices und empfohlene Codierungsstandards in PHP abdecken. Dies ist aus Performancegründen die empfohlene Einstellung für die Fehlerberichterstattung. Ihr Produktionsserver sollte keine Ressourcen verschwenden, die sich über Best Practices und Codierungsstandards beschweren.

Arseni Mourzenko
quelle
Danke für die Antwort. Es ist sehr offensichtlich, dass die Fehlerberichterstattung während der Entwicklung einer Website sehr nützlich ist. Ich war jedoch verwirrt, wenn die Entwickler sie nach der Erstellung der Website deaktivieren, damit der Client keinen der Fehler erkennt. Vielen Dank für das Löschen des Konzepts.
Wenn sich ein Entwickler error_reportingin der Produktion ausschaltet, hat er wahrscheinlich etwas zu verbergen.
Lekensteyn
Sie möchten die Protokollierung auf Debug- und Trace-Ebene in der Produktion deaktivieren. Fehlerberichte sind unerlässlich, wenn etwas schief geht. Bei den meisten Sites wird die Informationsprotokollierung aktiviert, wenn dies ordnungsgemäß durchgeführt wird.
BillThor
@FahadUddin Sie möchten nicht, dass Betrachter Ihrer Website / Anwendung Fehler sehen. Das Einzige, was wir einschränken, ist die Anzeige von Fehlern für den Endbenutzer. Den Rest erledigt die Protokollierung. Die gute Praxis schreibt jedoch vor, dass im Falle eines Fehlers auf Anwendungsebene (z. B. einer schlechten DB-Verbindung) dem Endbenutzer ein Fehler gemeldet und die Entwickler im Backend umgehend benachrichtigt werden.
Ian Lewis