Come codificare per "Stabilire e mantenere il controllo su tutti i tuoi output"

2

Stavo esaminando questo elenco (i 25 principali problemi di sicurezza):

  • https://cwe.mitre.org/top25/index.html#Listing

Questo mi ha portato a questo elenco:

  • https://cwe.mitre.org/top25/index.html#Mitigations

Questo mi ha portato a chiedermi come possiamo codificare per M2: stabilire e mantenere il controllo su tutti i tuoi output ?

Capisco M1 , convalida dell'input ma convalida dell'output? Come lo facciamo?

Questo significa ad esempio che in un'API REST dovremmo convalidare gli oggetti di risposta che inviamo? In tal caso, cosa dovremmo fare se la validazione fallisce? Non rispondere?

Probabilmente mi manca il punto qui. Grazie per l'aiuto. Qualcuno può fornire un esempio di codice (pseudo-codice)?

    
posta Vetras 23.08.2016 - 13:45
fonte

1 risposta

-1

Significa semplicemente che non dovresti controllare solo i tuoi Input (codifica, sql injection, xss, ecc.) ma dovresti anche validare e controllare i tuoi output (di nuovo ad esempio XSS) in modo che se i tuoi meccanismi di sicurezza di input falliscono e / o il tuo server invia "garbage" (per esempio i codici di errore PHP presentati all'utente finale) sei ancora al sicuro.

Ad esempio se hai un'applicazione Web come Twitter, non devi solo applicare controlli di sicurezza sugli input da parte degli utenti (i loro tweet) ma anche sull'output del tuo server agli utenti (i tweet degli altri che vedono) in modo che se il controllo di input non è riuscito, il controllo di output riconosce ancora che qualcosa è andato storto / è una possibile minaccia

IMHO il tuo link spiega tutto molto bene:

risposta data 23.08.2016 - 13:55
fonte

Leggi altre domande sui tag