Lanciare un errore 404 per ogni richiesta non valida potrebbe essere discutibile, un utente malintenzionato potrebbe iniziare a sospettare questo comportamento specialmente se conosce il servizio che sta prendendo di mira.
Questo aiuta a proteggere il tuo servizio? questo dipende davvero dalla perseveranza dell'attaccante.
Modifica :
L'attaccante può rilevare la differenza se non crei correttamente l'intestazione della risposta 404 come farebbe il server
Ecco un caso di server PoC per Java (Tomcat8):
Questo è uno stato 404 "veritiero" restituito dal server stesso per qualsiasi risorsa non trovata:
Content-Language:en
Content-Length:1026
Content-Type:text/html;charset=utf-8
Date:Tue, 31 Jan 2017 09:15:54 GMT
Server:Apache-Coyote/1.1
Questo viene restituito dal servlet :
Content-Language:en
Content-Length:992
Content-Type:text/html;charset=utf-8
Date:Tue, 31 Jan 2017 09:18:04 GMT
Server:Apache-Coyote/1.1
Noti il valore del parametro "Content-length" in entrambi i casi, questo potrebbe attirare l'attenzione dell'aggressore.
Attenzione, nascondere il codice di errore effettivo puzza un po' di offuscamento. Non c'è niente di veramente brutto dal punto di vista della sicurezza, ma aggiunge poca sicurezza se non nessuna. Pensi davvero che gli aggressori accettino ciecamente i codici di errore? Sai che possono essere cambiati a piacimento, e lo fanno anche loro. Ok, può essere utile contro gli script kiddies ma non affrontare un attacco serio, quindi dovresti davvero pensare a qual è il tuo modello di minaccia prima di andare in quel modo.
E potrebbe esserci uno svantaggio qui. A meno che non crei un sistema di log speciale che registri l'errore interno, finirai con log contenenti solo errori 404. Ciò significa che tu hanno perso ogni possibilità di analisi dei log per cercare di scoprire attacchi al tuo sito e possibili falle di sicurezza. I codici di errore IMHO sono più utili per il manutentore di un'applicazione che per un utente malintenzionato...