Maison > interface Web > tutoriel HTML > le corps du texte

Une brève discussion sur l'échappement HTML et les méthodes pour empêcher les attaques par injection Javascript

不言
Libérer: 2018-06-05 14:32:31
original
2274 Les gens l'ont consulté

L'éditeur suivant vous proposera une brève discussion sur l'échappement HTML et les méthodes pour empêcher les attaques par injection JavaScript. L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil.

Parfois, il y aura une zone de saisie sur la page une fois que l'utilisateur a saisi le contenu, il sera affiché sur la page, semblable à une application de chat Web. Si l'utilisateur saisit un script js, le rapport est : <script>alert('test');</script>, une boîte de dialogue apparaîtra sur la page, ou si le script d'entrée contient du code qui modifie le js variables de la page, le programme sera interrompu Exception ou pour atteindre l'objectif de sauter certaines vérifications. Alors, comment empêcher ce type d’attaque de script js malveillant ? Ce problème peut être résolu par l'échappement HTML.

1 : Qu'est-ce que le HTML qui s'échappe ?

L'échappement HTML consiste à convertir des caractères spéciaux ou des balises HTML en leurs caractères correspondants. Par exemple : < sera échappé vers <> ou échappé vers > comme "<script>alert('test');</script>" ce caractère sera échappé vers : "<script> alert ("test');</script>" Lorsqu'elle est affichée à nouveau, la page analysera < en <, > en >, restaurant ainsi la véritable entrée de l'utilisateur. Ce qui est finalement affiché sur la page est toujours "< ;script>alert('test');", qui évite les attaques par injection js et affiche véritablement les entrées de l'utilisateur.

2 : Comment s'évader ?

1. Via js

//转义 元素的innerHTML内容即为转义后的字符
function htmlEncode ( str ) {
 var ele = document.createElement(&#39;span&#39;);
 ele.appendChild( document.createTextNode( str ) );
 return ele.innerHTML;
}

//解析 
function htmlDecode ( str ) {
 var ele = document.createElement(&#39;span&#39;);
 ele.innerHTML = str;
 return ele.textContent;
}
Copier après la connexion

2. met en œuvre

function htmlEncodeJQ ( str ) {
  return $(&#39;<span/>&#39;).text( str ).html();
}

function htmlDecodeJQ ( str ) {
  return $(&#39;<span/>&#39;).html( str ).text();
}
Copier après la connexion

3. Utilisez

var msg=htmlEncodeJQ(&#39;<script>alert(&#39;test&#39;);</script>&#39;);

$(&#39;body&#39;).append(msg);
Copier après la connexion

Il est recommandé d'utiliser jquery pour une meilleure compatibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal