Che cos'è un attacco di SQL Injection / a causa di una vulnerabilità?

Questa FAQ risposta è stata scritta da k4thryn:

Una vulnerabilità di SQL iniezione può verificarsi quando un mal scritto programma utilizza l'utente ha fornito dati in un database di ricerca, senza la convalida del primo ingresso. Si tratta più spesso all'interno di pagine Web con contenuti dinamici. Ci sono alcuni ottimi tutorial e descrittivo articoli su questo argomento, così come molte vulnerabilità pubblicati per applicazioni diverse dalla piena divulgazione dei siti web.

Un semplice esempio di SQL iniezione HTML di base è una forma di accesso in cui si fornisce un nome utente e la password:


	  <form method="post" action="process_login.php"> 
	  <input type="text" name="username"> 
	  <input type="password" name="password"> 
	  </ form> 

Dato questo frammento di codice HTML, si può dedurre che la soluzione più semplice (e peggiori) per lo script "process_login.php" a lavorare per essa sarebbe di costruire un database ed eseguire query che assomiglia a questo:

	  "SELECT id 
	  DA login 
	  DOVE username = '$ username' 
	  e la password = '$ password' "; 

In tali circostanze, se le variabili "$ username" e "$ password" sono prese direttamente dal manuale d'ingresso, script di accesso possono facilmente essere ingannato a credere che una password valida è stata fornita da giocare con la sintassi di SQL. Supponiamo la seguente stringa sono stati forniti, come la password:

	  'O''=' 

e ci ha dato "bob" come nome utente. Una volta che le variabili sono interpolati, la query di cui sopra sarebbe simile a questa:

	  "SELECT id 
	  DA login 
	  DOVE username = 'Bob' 
	  e la password =''o''''= "; 

Questa query restituisce una riga perché la clausola finale:

	  ...  =''o'' 

sempre valutare a true (una stringa vuota è sempre uguale a una stringa vuota).

Prevenire gli attacchi SQL Injection

I più comuni metodi per prevenire questo tipo di iniezione SQL vunerability sono per verificare l'utente ingresso per pericolose caratteri come unico apici e preparati utilizzando le dichiarazioni, che raccontano la banca dati esattamente cosa aspettarsi prima di qualsiasi utente fornito dati è passata ad esso.

SQL Server Security Mastering Sicurezza SQL Server 2000 SQL Server Security distillata Oracle Security Handbook: Attuare un piano di sicurezza del suono nel tuo ambiente Oracle
Acquisto questi eccellenti libri su SQL sicurezza presso Amazon.com


Top 5 Free Networking Tools

Vulnerability Management for Dummies

I nostri amici a Qualys offrono copie gratuite della versione elettronica di Vulnerability Management for Dummies di Tech-FAQ lettori.

Vulnerability Management for Dummies:

  • Spiega il critico necessario per la gestione delle vulnerabilità
  • Dettagli essenziali migliori pratiche passi di un successo del programma di gestione delle vulnerabilità
  • Illustra le varie soluzioni di gestione delle vulnerabilità - compresi i vantaggi e gli svantaggi di ogni
  • Sottolinea la premiata soluzione di gestione delle vulnerabilità QualysGuard
  • Fornisce un punto dieci lista di controllo per rimuovere le vulnerabilità da la chiave di risorse
Favoriti Che cos'è un attacco di SQL Injection / a causa di una vulnerabilità?

Ultimi post sul blog


Inglese Inglese Tedesco Tedesco Spagnolo Spagnolo Francese Francese Italiano Italiano Portoghese Portoghese Russo Russo Olandese Olandese
Greco Greco Hindi Hindi Giapponese Giapponese Coreano Coreano Cinese Cinese Cinese (semplificato) Cinese (semplificato) Arabo Arabo

Copyright 2009 Tech-FAQ. Tutti i diritti riservati. Privacy Policy.