ホームページ > 記事 > ウェブフロントエンド > JavaScript で HTML エンティティを安全にエスケープする方法: XSS 脆弱性に対処する?
JavaScript での HTML エンティティのエスケープ解除: 総合ガイド
最新の Web アプリケーションは、XML-RPC などのプロトコルを通じてサードパーティのサービスと対話することがよくあります。 XML-RPC ではエンティティを使用して、HTML エンティティなどの特殊文字を表すことができます。 XML-RPC サービスから HTML エンコードされた文字列を受け取り、それを JavaScript で生成された HTML に挿入する必要がある場合、目的のビジュアルを表示するためにエスケープを解除することが重要です。
HTML エンティティのエスケープ解除
リンクされたスレッドで受け入れられた回答は、HTML エンティティをエスケープ解除する関数を提案しました:
function htmlDecode(str) { var doc = new DOMParser().parseFromString(str, "text/html"); return doc.documentElement.textContent; }
このアプローチでは、DOMParser を使用して入力文字列からドキュメント フラグメントを作成し、HTML を効果的にエスケープ解除します。
XSS 脆弱性の防止
ただし、受け入れられた回答で指摘されているように、DOMParser アプローチを使用するとセキュリティ リスクが生じる可能性があります。入力文字列にエスケープされていない HTML マークアップが含まれている場合、クロスサイト スクリプティング (XSS) の脆弱性が発生する可能性があります。
代替アプローチ
このリスクを軽減するには、次のことができます。次のような代替アプローチを使用します。
問題
エンティティのエスケープ解除が期待どおりに機能しない場合は、次の手順に従って診断できます。
以上がJavaScript で HTML エンティティを安全にエスケープする方法: XSS 脆弱性に対処する?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。