L'attaccante non può scegliere quali codifiche potrebbero essere efficaci. Se non è presente decodificatore base64 a livello di applicazione, l'esecuzione della codifica base64 non porterà a nulla.
Se è un passo di decodifica base64 alla fine dell'applicazione, l'applicazione dovrebbe eseguire la convalida dell'input dopo la decodifica è stata eseguita.
Nel caso dei WAF, che siedono nel mezzo e non sanno cosa potrebbe fare la decodifica dell'applicazione, hai ragione - non sono affidabili.
Alcuni strumenti applicano solo la decodifica standard del protocollo (ad esempio decodifica URL per i parametri URL) e falsi-negativi sugli attacchi codificati utilizzando uno schema ad hoc; alcuni strumenti provano una selezione di codifiche e opzionalmente combinazioni n di codifiche profonde per cercare di individuare le firme di attacco, che possono portare a falsi positivi poiché il testo innocuo che non sarà mai codificato in base64 viene interpretato erroneamente come base64- codifica di qualcosa che potrebbe essere un attacco.
Quindi sì, le correzioni come i WAF che operano al di sopra del livello dell'applicazione sono inaffidabili, ma non è una novità. Nessuno dovrebbe fare affidamento esclusivamente su un WAF per la sicurezza; sono utili per rilevare attacchi generici e per soluzioni temporanee personalizzate per vulnerabilità note fino a quando è disponibile una correzione per app, ma non possono mai essere un filtro di input a tenuta stagna.