Chcę ustawić niestandardową wiadomość, która będzie wyświetlana użytkownikowi, gdy zgłoszę błąd w Laravel 5.1. Na przykład, w kontrolerze może mam:Czy wyświetlanie komunikatu wyjątku PHP stanowiłoby zagrożenie dla bezpieczeństwa?
if(!has_access()){
abort('401', 'please contact support to gain access to this item.');
}
Wtedy moja spersonalizowana strona błędu Chciałbym wyświetlić błąd z:
$exception->getMessage();
Jednak co zrobić, jeśli wystąpił błąd SQL lub innego zdarzenia? Czy nie ustawiłoby to również komunikatu wyjątku, którego nieświadomie wysyłałem na mojej stronie błędu?
The PHP docs for getMessage() nie wchodzić w szczegóły na ten temat.
Jak ustawić konkretny komunikat wyjątku bez ryzyka bezpieczeństwa?
nie wiem o laravel ale wszystkie ramy, które użyłem zawierać 'HttpException' klasę (która pochodzi z' Exception') oraz blok catch łapie tylko wyjątki tej klasy 'catch (HttpException $ e) '. Zgaduję, że jest to prawdą również dla Laravel, ponieważ stała się ona ogólną praktyką dla frameworków, które mają taką możliwość. – Gasim
Potencjalnie tak, ponieważ może wyświetlać informacje o zabezpieczeniach, takie jak dane logowania użytkownika w zależności od wyjątku .... ale ty nie powinien wyświetlać śledzenia stosu w środowisku produkcyjnym, zrezygnuj z ustawienia debugowania aplikacji. –
To prawda. Właśnie odpowiedziałem na podstawie specyficznego wywołania funkcji OP '$ exception-> getMessage()' – Gasim