Injections MySQL {SQL}

Injections MySQL {SQL}

Bonjours , on se retrouve aujourd’hui pour un nouvelle article sur les Injections SQL / MySQL.

Mais tout d’abord qu’est-ce qu’SQL ???

Bon,SQL est un langage informatique normalisé servant à exploiter des bases de données relationnelles. La partie langage de manipulation des données de SQL permet de rechercher, d’ajouter, de modifier ou de supprimer des données dans les bases de données relationnelles.

Mais Pourquoi faire des injections SQL ?

Pour récupérer les données des utilisateurs du site ( ID , IP , Mot de passe , email , date de naissance etc… )

Maintenant , Comment savoir si un site est vulnérable aux injections SQL ?

Pour cela , imaginons vous avez un site comme cela : www.cible.com/index.php

vous devez faire ceci :

www.cible.com/index.php?id=la valeur de l’id

Puis si cela vous redirige sur une page d'erreur, c'est que le site est vulnérable.
Encore une fois, je ne vous expliquerai pas comment utiliser cette faille car je n'encourage pas ce genre d'activités, mais vous pouvez trouver sur le web de nombreux tutos .

Maintenant : COMMENT S’EN PROTÉGER ?

Donc tout d’abord, je tiens à préciser que cette failles est de moins en moins courante car maintenant, les CMS et autres l’ont patch, mais il reste toujours des site non mis à jours et des nouvelles failles …

donc voici comment s’en protéger :

Venons-en au point essentiel, se prémunir des attaques par injection SQL.

Si on reprend l’exemple du début :

"SELECT id FROM users WHERE name = 'Admin' AND password = '".$_POST["password"]."'"

On utilise ici ce que l’utilisateur envoie directement dans la requête.

Donc la première chose à faire est d’éviter (d’échapper) les caractères spéciaux à l’aide de mysqli_real_escape_string() :

"SELECT id FROM users WHERE name = 'Admin' AND password = '".mysqli_real_escape_string($_POST["password"])."'"

Les fonctions addslashes() et magic_quotes_gpc() sont aussi utilisées mais ne protègent pas aussi bien que mysqli_real_escape_string().

Un moyen qui tend à se généraliser mais impacte légèrement les performances est l’utilisation des commandes préparées

Les procédures stockées nécessitent plus de connaissances mais peuvent aussi être utilisées. L’identification restera bien protégée à l’intérieur de la procédure et ne pourra plus être détournée.

Enfin, il faut préférer l’utilisation de comptes utilisateurs à accès limité pour empêcher la modification ou suppression d’éléments de la base de données. Et éventuellement vérifier les données avec des expressions régulières ou utiliser des tableaux contenant tous les résultats possibles.

Source : diverses forum .

rasnet

4 réflexions au sujet de « Injections MySQL {SQL} »

JeVeuxTeContacterPublié le  7:21 - Juil 14, 2019

Je peux te contacter ?
Si oui , où ?

sunflamePublié le  10:20 - Sep 25, 2019

Veuillez vérifier votre e-mail. J’ai quelques doutes. Je ne veux pas le poster publiquement. Donc en vous envoyant un mail. Répondez, s’il vous plaît.

Merci d’avance

longmanPublié le  10:21 - Sep 25, 2019

Grace à toi je me lance dans la programmation

Laissez votre message