Il contenuto del database dovrebbe essere nuovamente disinfettato

1

Supponiamo di salvare il contenuto nel database dopo averlo disinfettato. È ancora necessario disinfettarlo di nuovo quando lo si recupera? Se sì, perché?

    
posta VarunAgw 14.08.2014 - 17:31
fonte

1 risposta

4

"Sanitize", da solo, non ha senso. Non esistono "dati sporchi" al contrario di "dati puliti". Quando le persone pensano che i dati siano "disinfettati", in realtà intendono "dati che sono stati verificati in un formato adatto per un specifico trattamento ". Ad esempio, se lo scopo dei dati deve essere incorporato in alcune istruzioni SQL, il "risanamento" dei dati implica che non contenga nessuno dei caratteri che il parser SQL considererà speciale (in genere, senza virgolette).

Una parola migliore è convalida . Ogni volta che è necessario utilizzare alcuni dati e i dati sono "potenzialmente ostili" (potrebbero essere stati creati a un certo punto, più o meno direttamente, da un utente malintenzionato per attivare comportamenti indesiderati nel codice), i dati devono essere verificati essere appropriato per l'elaborazione prevista. Se "hai salvato il contenuto nel database dopo averlo disinfettato", è probabile che tu abbia fatto in modo che i dati fossero nel formato corretto per archiviarli nel database . A seconda delle fasi di convalida necessarie per garantire la sicurezza dell'archiviazione e di cosa intendi fare con i dati al momento del recupero, questo potrebbe essere o non essere sufficiente.

Ad esempio, supponiamo che l'elemento dati sia ottenuto come alcuni caratteri dall'utente e che dovrebbe essere memorizzato nel database. L'elemento dati dovrebbe essere un numero. Tuttavia, la cosa del database-storage parla solo di "caratteri speciali" e quindi non vede alcun problema nella memorizzazione di "BozoWasThere" nel database. In questo senso, la stringa è stata disinfettata (e la memorizzazione è andata molto bene) ma non è ancora un numero, quindi questo dovrebbe garantire un'ulteriore igiene dopo averlo recuperato.

Il concetto di "dati sterilizzati" è una grande fonte di confusione. È un mantra che molti sviluppatori ritengono ("sanitizza tutte le cose!") Perché danno loro la sensazione di aver fatto qualcosa per la sicurezza, senza dover eseguire l'azione più scomoda conosciuta come pensando . A lungo termine, questo non funziona bene.

    
risposta data 14.08.2014 - 18:04
fonte

Leggi altre domande sui tag