La risposta è in modo definitivo "sì", "no" e "dipende". Il modo migliore per porre questa domanda sarebbe " Sapendo che ho risorse limitate, come dovrei dare la priorità a una recensione della mia applicazione web? ".
In sicurezza, il successo non è definito come sicuro al 100%. Il successo dovrebbe essere definito come la riduzione del rischio fino ad un livello accettabile. Il tuo "livello di rischio accettabile" dovrebbe essere basato su ciò che fa la tua applicazione, su ciò che protegge, quale è la ricaduta se succede qualcosa di brutto. Voglio fare più revisioni del codice che esegue il mio pacemaker di quello del gioco per Android che compro per un dollaro.
Per il 99% delle organizzazioni, le risorse sono limitate. È improbabile che tu abbia le risorse per testare completamente ogni aspetto della tua applicazione web. Devi capire quali risorse hai a disposizione per la revisione e poi la priorità.
Ogni applicazione è diversa, quindi dovresti esprimere i tuoi giudizi, ma qui ci sono alcune cose a cui darei la priorità:
Input utilizzati come parte delle query SQL (SQL injection)
Input usati come parte dei comandi eseguiti (comando di iniezione)
Input usati come parte delle query LDAP (ldap injection)
Input di un utente restituiti ad altri utenti (XSS persistente)
Input di un utente restituiti a quell'utente (XSS riflesso)
Input usati come parte di azioni che modificano l'account di un utente
Input usati come parte di qualsiasi elaborazione complessa (DOS esaurimento risorse)
Input che vengono passati a qualsiasi processo eseguito con privilegi elevati
Inoltre, sapendo che non puoi esaminare in modo esauriente ogni aspetto della tua app web, "imbrogli" aggiungendo ulteriori attenuazioni:
Esegui il tuo server web senza privilegi elevati
Gli account per l'accesso ai DB dovrebbero avere privilegi minimi
Avere account separati per diversi tipi di accesso al DB. Se il 95% delle chiamate DB sono di sola lettura, non utilizzare un account con privilegi di scrittura per tali.