Desidero impostare un messaggio personalizzato da visualizzare all'utente quando lancio un errore in Laravel 5.1. Per esempio, in un controller potrei avere:Mostrare il messaggio di eccezione PHP potrebbe essere un rischio per la sicurezza?
if(!has_access()){
abort('401', 'please contact support to gain access to this item.');
}
Poi la mia pagina di errore personalizzata avrei visualizzare l'errore con:
$exception->getMessage();
Tuttavia, quello che se ci fosse un errore di SQL o un altro evento? Non avrebbe impostato anche il messaggio di eccezione che avrei inconsapevolmente trasmesso sulla mia pagina di errore?
Il PHP docs for getMessage() non entrare in molti dettagli su questo.
Come è possibile impostare un messaggio di eccezione specifico senza introdurre rischi per la sicurezza?
Non so circa laravel ma tutti i quadri che ho usato includono una 'HttpException' classe (che è derivato da' Exception') e il blocco catch intercetta solo le eccezioni di quella classe 'cattura (HttpException $ e) '. Quindi, suppongo che sia vero anche per Laravel perché è diventato una pratica generale per i framework avere questo – Gasim
Potenzialmente sì, perché potrebbe visualizzare informazioni di sicurezza come i dettagli di accesso dell'utente a seconda dell'eccezione .... ma tu non dovrebbe comunque visualizzare la traccia dello stack in un ambiente di produzione, disabilitare l'impostazione di debug delle app –
È vero. Ho appena risposto in base alla chiamata di funzione specifica di OP '$ exception-> getMessage()' – Gasim