Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 12385|Risposta: 0

[Comunicazione] Tutorial sulla vulnerabilità di sicurezza della validazione della password MSSQL 2011

[Copiato link]
Pubblicato su 26/11/2014 15:47:51 | | |
Come istruzione di query standard internazionale per database, le istruzioni SQL sono state ampiamente utilizzate in vari ambienti di programmazione. Essendo un sistema maturo e stabile, la verifica dell'accesso e della password dell'utente sono essenziali. Nel mio lavoro quotidiano di programmazione, ho scoperto che molti programmatori usano istruzioni SQL per verificare le password degli utenti tramite un'affermazione come questa:
sql="Select * dalla tabella utente dove nome='"+nome+"' e password='"+password+"'"
Il nome e la password sono i nomi utente e le password inseriti dall'utente, e le affermazioni sopra vengono eseguite per verificare se l'utente e la password siano legittime e valide. Tuttavia, attraverso l'analisi, si può trovare che ci sono falle fatali nelle affermazioni sopra elencate. Quando inseriamo la seguente stringa nel nome utente: 111'o'1=1, e poi inseriamo la password in modo casuale, la impostiamo su aaaa. Dopo che la variabile è stata sostituita, l'istruzione SQL diventa la seguente stringa:
sql="Select * dalla tabella utente dove nome='111'o'1=1' e password='aaaa'
Sappiamo tutti che quando la sentenza select giudica le condizioni della query, ignorerà le seguenti operazioni e (e) quando si incontrano operazioni o (o), e il valore di 1=1 nell'istruzione sopra è sempre vero, il che significa che, indipendentemente dal valore inserito nella password, può superare la verifica della password sopra! La soluzione a questo problema è molto semplice e ci sono molti metodi; il più comunemente usato è giudicare la legittimità dell'utente e la password inserita dall'utente prima di effettuare la verifica, e caratteri speciali come virgolette singole e uguali non sono permessi.
I problemi sopra descritti, anche se possono sembrare semplici, esistono. Ad esempio, la prima versione del famoso gioco online "Smiling Proud Jianghu" su Internet aveva un problema simile, e l'autore analizzò con attenzione alcuni dei programmi che aveva già scritto dopo aver letto il rapporto sulle vulnerabilità su questo gioco, e vi furono molte falle di questo tipo. Questa dovrebbe davvero essere la nostra attenzione. Questo mette anche in luce la mancanza di esperienza nella programmazione e la consapevolezza della sicurezza dei giovani programmatori, incluso l'autore. Allo stesso tempo, ci ricorda anche che i programmatori dovrebbero considerare pienamente la sicurezza del programma nella progettazione, e non dovrebbero essere negligenti, e una semplice omissione apparentemente piccola potrebbe causare conseguenze gravi.




Precedente:Sicurezza dei database SQL 2005 e integrità referenziale
Prossimo:2011 MSSQL System Security SA Tutorial sul rischio di sicurezza delle password deboli
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com