Le eccezioni dovrebbero essere mostrate all'utente?
No.
La visualizzazione di messaggi di eccezione è una cattiva pratica. Le eccezioni dovrebbero essere utilizzate per eseguire il debug del codice, non dovrebbero essere utilizzate per visualizzare qualcosa all'utente.
Se utilizzi lo stesso meccanismo, eccezioni, per entrambe le attività, sarà molto difficile separarle. Alla fine, mostrerai un messaggio di eccezione con troppe informazioni oppure registrerai un'eccezione con informazioni insufficienti.
Inoltre, i messaggi di eccezione generalmente non offrono una buona usabilità. Perché un utente dovrebbe preoccuparsi che ci sia stato un errore nel gestore delle eccezioni? Cosa dovrebbero fare con queste informazioni? La maggior parte degli utenti non saprebbe cosa sia un gestore di eccezioni e sarebbe confusa da tale messaggio.
Queste informazioni vengono divulgate?
Come hai notato, divulghi informazioni tramite questo messaggio (stai usando Laravel). Ed è anche ricercabile tramite google, quindi se per esempio viene trovata una nuova vulnerabilità in Laravel, qualcuno può cercare su google questo messaggio di errore per trovare un sacco di installazioni di Laravel da attaccare. Ciò significa che con questo messaggio potresti teoricamente attirare l'attenzione e attirarti contro di te.
D'altro canto, divulgare il software usato (senza la versione esatta) è spesso abbastanza difficile da prevenire, e talvolta nemmeno desiderato.
È davvero una sentenza se si desidera chiamare questa divulgazione di informazioni o no. Se ad esempio prendi la definizione di CWE-200 :
An information exposure is the intentional or unintentional disclosure
of information to an actor that is not explicitly authorized to have
access to that information.
The information either
is regarded as sensitive within the product's own functionality, such as a private message; or
provides information about the product or its environment that could be useful in an attack but is normally not available to the
attacker, such as the installation path of a product that is remotely
accessible.
Quindi la domanda è se pensi che un utente non sia autorizzato a sapere che stai usando Laravel e se pensi che questa informazione non sia normalmente disponibile.
Conclusione
Perdite alcune informazioni, piuttosto secondarie, senza una buona ragione, che potrebbero avere un piccolo impatto sulla sicurezza e sull'usabilità.
Dovresti invece visualizzare un utile messaggio di errore, se possibile, o un messaggio di errore generico se non.