Comme vous l'avez vu jusqu'à présent, les injections d'Eskil sont très dangereuses et très faciles à trouver et
à trouver.
Vous les trouverez partout et certains sites Web très célèbres tentent de prévenir ces vulnérabilités à
l'aide de filtres.
Les filtres peuvent donner l'impression qu'il n'y a pas d'exploits.
Mais si vous essayez plus fort en utilisant différents types d’encodage ou en utilisant un proxy, vous
pourrez alors contourner la plupart de ces filtres.
Certains programmeurs utilisent une liste noire.
Ainsi, par exemple, ils empêchent l'utilisation de l'union, ils empêchent l'utilisation d'insert et d'autres choses du même genre.
Encore une fois, ce n'est pas sûr à 100%.
Vous pouvez la contourner en utilisant une liste blanche contenant exactement les mêmes problèmes que la liste noire.
La meilleure façon de le faire est de programmer votre application Web de manière à ne
pas permettre l’injection de code, puis l’exécuter.
La meilleure façon de le faire est donc d'utiliser des instructions de droits paramétrées dans lesquelles les données et le code
sont séparés.
Et la meilleure façon de vous montrer ce que je veux dire par là, c’est utiliser un exemple. Je garde le moins de programme possible.
Dans cet exemple, je ne veux pas qu’il s’agisse d’un programme.
En fait, le programme contient des erreurs, mais j'essaie de vous expliquer davantage le concept que la manière de
le programmer.
Donc, le code vulnérable que nous examinions utilisait pour cela, donc il sélectionnait
une étoile parmi les comptes pour lesquels le nom d'utilisateur est égal à ce que nous avons mis
dans la zone de texte 1, puis utilisé dans la zone de texte 1 .
Nous avions l'habitude de dire admin, puis le code était fermé et nous pouvions ensuite sélectionner et exécuter l'union
autrement.
Et puis, une fois que nous avons terminé, nous ajoutions le commentaire qui ignore fondamentalement tout ce qui vient
après.
Ainsi, lorsque vous copiez ceci et que vous le collez ici, vous verrez ce
qui se passe.
Donc, c'est choisir.
Maintenant, débarrassons-nous de cela car cela ne fait que rendre les couleurs pas agréables.
Je vais en fait juste commenter cela afin de pouvoir créer une étoile sélectionnée à partir de comptes où le
nom d'utilisateur est égal à l'union d'admin. vouloir faire.
C’est très grave et il est très difficile de se protéger car, comme je l’ai dit, les filtres utilisateur ne masquent que
le problème ne réglera pas le problème.
La meilleure façon de le faire consiste à utiliser les instructions de montée de paramètre comme suit.
C'est donc le moyen le plus sûr de le faire.
Tout d’abord, vous préparez votre déclaration dans la plupart des langues,
comme BHP, qui ont toutes une fonction comme celle-ci. Vous pouvez préparer une équipe sélectionnée à partir de comptes où
le nom d’utilisateur correspond à un point d’interrogation, puis vous envoyez les valeurs.
Donc, BHP sait maintenant que l'instruction Eskil est une sélection d'employés parmi les comptes où le nom d'utilisateur est égal à quelque chose, puis
prend la valeur de la zone de texte 1.
Donc, même si nous entrons et que nous utilisons notre déclaration très sournoise ici et que nous y collons, l’application Web saura que la valeur de ce choix est
que les unions d’administration soient sélectionnées. Elle essaiera en fait de sélectionner le personnel des comptes sur lesquels le nom
d’utilisateur alors, en fait, il ajoutera ses propres guillemets et ils essaieront de trouver un nom
d'utilisateur avec le nom d'utilisateur suivant.
Ainsi, tout sera exécuté comme si, de
sorte que ce seront des employés sélectionnés parmi les comptes dont le nom d'utilisateur
est égal à l'union d'administrateurs. Sélectionnez ce hashtag pour qu'il ne soit jamais envoyé comme valeur.
Et l’application Web saura que c’est une valeur, ce n’est pas un code et elle ne sera jamais exécutée.
Par conséquent, cela vous protégera contre les injections cruelles.
Vous pouvez utiliser les filtres comme deuxième ligne de défense.
Et je vous conseille également d'utiliser le moins de privilèges possible afin de l'utiliser pour chaque base de données.
Utilisez un utilisateur avec le minimum de privilèges qu'il souhaite, ne lui permettez pas de faire quoi
que ce soit.
Si c'est un site simple qui ne sélectionne que ce qui permet à l'utilisateur de sélectionner uniquement s'il doit
sélectionner uniquement un insert, autorisez-le uniquement à sélectionner un insert.
Et c’est une règle que vous devez conserver avec tout, même au sein de ses systèmes, afin
de s’assurer que le parent avec les autorisations est toujours aussi identique que possible. Chaque utilisateur ne dispose d’autorisations supplémentaires dont il n’a
pas besoin.