Ich möchte eine benutzerdefinierte Nachricht für den Benutzer angezeigt werden, wenn ich einen Fehler in Laravel 5.1. Zum Beispiel in einem Controller könnte ich habe:Wäre das Anzeigen der PHP Exception Message ein Sicherheitsrisiko?
if(!has_access()){
abort('401', 'please contact support to gain access to this item.');
}
meine benutzerdefinierte Fehlerseite Dann würde ich den Fehler angezeigt werden mit:
$exception->getMessage();
Was aber, wenn es einen SQL-Fehler oder ein anderes Ereignis? Wäre das nicht auch die Exception Message, die ich unwissentlich auf meiner Fehlerseite ausgeben würde?
Die PHP docs for getMessage() gehen nicht ins Detail darüber.
Wie kann ich eine bestimmte Ausnahmebedingungsnachricht festlegen, ohne ein Sicherheitsrisiko einzugehen?
Ich weiß nicht, über Laravel aber alle Frameworks, die ich verwendet habe, gehören 'HttpException' Klasse (die von' Exception' abgeleitet ist) und der catch-Block fängt nur Ausnahmen von dieser Klasse 'catch (HttpException $ e) '. Also, ich nehme an, es ist auch für Laravel wahr, weil es eine allgemeine Praxis für Frameworks geworden ist, dass – Gasim
Potentiell ja, weil es Sicherheitsinformationen wie Benutzeranmeldedetails abhängig von der Ausnahme anzeigen kann .... aber Sie sollte den Stack-Trace in einer Produktionsumgebung sowieso nicht anzeigen, deaktivieren Sie Ihre App Debug-Einstellung –
Das stimmt. Ich antwortete nur auf der Grundlage der spezifischen Funktionsaufruf von OP '$ Ausnahme-> getMessage()' – Gasim