ホームページ  >  記事  >  ウェブフロントエンド  >  HTML エスケープと JavaScript インジェクション攻撃を防ぐ方法についての簡単な説明

HTML エスケープと JavaScript インジェクション攻撃を防ぐ方法についての簡単な説明

不言
不言オリジナル
2018-06-05 14:32:312273ブラウズ

以下のエディターでは、HTML エスケープと JavaScript インジェクション攻撃を防ぐ方法について簡単に説明します。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。エディターをフォローして見てみましょう

ユーザーがコンテンツを入力すると、Web チャット アプリケーションと同様に、ページ上に入力ボックスが表示されることがあります。ユーザーが JS スクリプトを入力した場合、比率は 3f1c4e4b6b16bbbd69b2ee476dc4f83aalert('test');2cacc6d41bbb37262a98f745aa00fbf0 となり、ページ上にダイアログ ボックスがポップアップ表示されます。または、入力スクリプトに JS スクリプトを変更するコードが含まれている場合は、ページの変数を変更すると、プログラムは例外または特定の検証をスキップする目的を達成するために中断されます。では、この種の悪意のある JS スクリプト攻撃を防ぐにはどうすればよいでしょうか?この問題は HTML エスケープすることで解決できます。

1: HTML エスケープとは何ですか?

htmlエスケープとは、特殊文字またはHTMLタグを対応する文字に変換することです。例: 7932b561e44d9c4a9d20d3cb795cffec にエスケープされます。または、「3f1c4e4b6b16bbbd69b2ee476dc4f83aalert('test');2cacc6d41bbb37262a98f745aa00fbf0」のようにエスケープされます。 ('test');2cacc6d41bbb37262a98f745aa00fbf0" 再度表示されると、ページは 1fae6e1bc9ea5993f35f1777f8e12f29 を > に解析し、それによってユーザーの実際の入力が復元されます。ページに最終的に表示されるのは "

2: どうやって逃げる?

1. jsを通して実現

2. jqueryを通して実現

3.

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

//解析 
function htmlDecode ( str ) {
 var ele = document.createElement('span');
 ele.innerHTML = str;
 return ele.textContent;
}

することをお勧めします互換性が向上するため、 jquery を使用して実装してください。


以上がHTML エスケープと JavaScript インジェクション攻撃を防ぐ方法についての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。