Maison > interface Web > js tutoriel > Failles de sécurité courantes JavaScript et technologie de détection automatisée_compétences Javascript

Failles de sécurité courantes JavaScript et technologie de détection automatisée_compétences Javascript

WBOY
Libérer: 2016-05-16 15:43:34
original
1795 Les gens l'ont consulté

Avant-propos

Avec le développement du Web2.0 et la popularité du framework Ajax, les applications Web clientes riches (Rich Internet Applications, RIA) augmentent de jour en jour, et de plus en plus de logique a commencé à être transférée du côté serveur vers le client. Ces logiques sont généralement toutes écrites en langage JavaScript. Mais malheureusement, les développeurs ne prêtent généralement pas beaucoup d’attention à la sécurité du code JavaScript. Selon le rapport sur les tendances à mi-parcours 2011 d'IBM X-Force, 40 % des sites Web Fortune 500 et des sites Web connus présentent des vulnérabilités de sécurité JavaScript. Cet article montrera aux lecteurs les vulnérabilités de sécurité JavaScript courantes en combinaison avec le code, dans le but d'aider les lecteurs à éviter ces vulnérabilités de sécurité dans le travail de codage quotidien. De plus, les principes des vulnérabilités de sécurité JavaScript côté client sont légèrement différents de ceux des vulnérabilités de sécurité côté serveur. Il existe actuellement des difficultés techniques majeures dans la détection automatique des vulnérabilités de sécurité JavsScript. Cet article utilisera des cas pour partager avec les lecteurs comment utiliser le. nouvelles fonctionnalités d'IBM Rational AppScan Standard Edition V8.0 (la technologie JavaScript Security Analyzer (JSA) détecte automatiquement les vulnérabilités de sécurité JavaScript.

Fulnérabilités de sécurité JavaScript courantes

En décembre 2010, IBM a publié un livre blanc sur les vulnérabilités de sécurité JavaScript côté client dans les applications Web, qui présentait l'enquête sur l'état de la sécurité JavaScript menée par IBM Security Research Institute. L'échantillon de données comprend 675 sites Web, dont des sites Web de sociétés Fortune 500 et 175 autres sites Web bien connus, notamment des sociétés informatiques, des sociétés de services de sécurité d'applications Web, des sites de réseaux sociaux, etc. Afin de ne pas affecter le fonctionnement normal de ces sites Web, les chercheurs ont utilisé un robot d'exploration non intrusif qui analysait uniquement un sous-ensemble de pages accessibles sans connexion, pas plus de 200 pages par site. Ces pages ont été enregistrées et les chercheurs ont utilisé la technologie d'analyse de sécurité JavaScript d'IBM pour analyser ces pages hors ligne, en se concentrant sur les vulnérabilités de script intersite et de redirection basées sur DOM.

Les résultats des tests sont étonnants. 14 % de ces sites Web bien connus présentent de graves problèmes de sécurité JavaScript. Les pirates peuvent utiliser ces vulnérabilités pour implanter des logiciels malveillants, implanter des sites de phishing et détourner des sessions utilisateur. Ce qui est encore plus étonnant, c'est qu'avec la maturité de la technologie d'analyse de sécurité JavaScript d'IBM, le rapport X-Force de mi-2011 a montré qu'IBM avait retesté les sites Web bien connus mentionnés ci-dessus et découvert davantage de vulnérabilités de sécurité. Environ 40 % des sites Web disposent d'une sécurité JavaScript. vulnérabilités.

Code source du cadre de sécurité des autorisations universelles Java au niveau de l'entreprise SpringMVC mybatis ou hibernate ehcache shiro druid bootstrap HTML5

L'article suivant montrera aux lecteurs ces vulnérabilités de sécurité JavaScript courantes en combinaison avec le code, afin que les lecteurs puissent remarquer ces problèmes de sécurité pendant le processus de codage lui-même et éviter ces risques le plus tôt possible.

Scripts intersites basés sur DOM

Nous avons tous entendu parler du XSS (Cross Site Script, également connu sous le nom d'attaque par script intersite), qui fait référence à un attaquant insérant du code de script malveillant (généralement du code HTML et JavaScript) dans le code de pages Web légitimes), puis soumet le requête au serveur, puis la page de réponse du serveur est implantée avec le code de script malveillant de l'attaquant. L'attaquant peut utiliser ces codes de script malveillants pour mener des attaques telles que le piratage de session. Les scripts cross-site sont généralement divisés en types réfléchissants et persistants : les scripts cross-site réfléchissants se produisent lorsque les données de la demande sont rendues non codées et non filtrées dans la page de réponse du serveur. Les données persistantes font référence à des données de demande contenant du code malveillant. Elles sont stockées sur le serveur du serveur ; Application Web. Chaque fois que l'utilisateur visite une certaine page, le code malveillant sera automatiquement exécuté. Ce type d'attaque est particulièrement courant pour les sites de réseaux sociaux de type Web2.0, et la menace est également plus grande. Il existe deux manières principales de gérer les scripts intersites : premièrement, ne faites confiance à aucune entrée de l'utilisateur et essayez d'utiliser la technologie de liste blanche pour vérifier les paramètres d'entrée. Deuxièmement, échappez au contenu fourni par l'utilisateur lors de la sortie.

Mais on sait peu de choses qu'il existe un troisième type de vulnérabilité de script intersite. En 2005, Amit Klein a publié le livre blanc « DOM Based Cross Site Scripting ou XSS of the Third Kind » (« DOM Based Cross Site Scripting ou XSS of the Third Kind »), qui a révélé la compilation de scripts intersites basés sur DOM. du contenu n'a pas besoin de s'appuyer sur des réponses côté serveur. Si certaines pages HTML utilisent des attributs d'éléments DOM tels que document.location, document.URL ou document.referer, les attaquants peuvent utiliser ces attributs pour implanter des scripts malveillants afin d'implémenter DOM-. basées sur des références croisées.

Ci-dessous, nous démontrerons le principe du cross-site scripting basé sur DOM à travers une page HTML très simple. Supposons qu'il existe une page HTML statique (affichée dans le listing 1) qui affiche un message invitant l'utilisateur à se connecter avec succès.

Liste 1. Code HTML avec XSS basé sur DOM

<HTML>
<TITLE>Welcome!</TITLE>
Hi
<SCRIPT>
 var pos=document.URL.indexOf("name=")+5;
 document.write(document.URL.substring(pos,document.URL.length));
</SCRIPT>
<BR>
Welcome to our system
…
</HTML>
Copier après la connexion

按照该页面 JavaScript 代码逻辑,它会接受 URL 中传入的 name 参数并展示欢迎信息,如清单 2 所示:

清单 2. 正常情况下的访问 URL

http://www.vulnerable.site/welcome.html?name=Jeremy

但如果恶意攻击者输入类似如下的脚本,见清单 3,该页面则会执行被注入的 JavaScript 脚本。

清单 3. 访问 URL 中注入脚本

http://www.vulnerable.site/welcome.html?name=

Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal