injection SQL est une forme d'attaque de réseau qui implique code " injecter " dans une base de données dans une tentative de forcer le programme d'interrogation de base de données pour retourner une erreur et donner l'injecteur certaines informations à la fois la base de données et de l'information au sein de elle . Elle peut être réalisée à partir de n'importe quelle page Web qui agit comme un portail vers une base précaire et ne pas désinfecter ses requêtes. Instructions
1
Assurez-vous de spécifier le type d' entrée requis lors de l'écriture de votre code de requête SQL. La plupart des environnements de développement vous permettent de spécifier "string" , "entier " ou "date" . Par exemple , l'URL
http://mysite.com/listauthordetails.aspx?user_id=1234
est interprétée par la base de données
prenom SELECT, nom_famille DE utilisateurs WHERE user_id = '1234 '
Cette requête peut être réécrite pour
Dim ID comme String = Request.QueryString ( "ID" )
de cmd As New SqlCommand ( " SELECT user_id FROM utilisateurs WHERE user_id = @ user_id " )
param Dim = new SqlParameter ( " user_id " , SqlDbType.VarChar )
param.Value = ID
cmd. Parameters.Add ( param)
Ce code empêche des informations supplémentaires soient ajoutés à la fin de la requête SQL , et ne laisse passer que le résultat de la demande user_id .
2
Utilisez l' fichier . htaccess pour bloquer les demandes illégitimes avant qu'elles ne soient transmises à la base de données , en utilisant le RewriteCond () de commande . Par exemple, pour bloquer un script en essayant de modifier une variable de demande, soit utiliser la ligne " RewriteCond% { QUERY_STRING } _REQUEST ( =