HTML タグを含む文字列を扱う場合、セキュリティ上の理由からそれらをサニタイズしてエスケープすることが重要です。これには、「<」、「>」、「&」などの疑わしい文字を、対応する HTML エンティティ「<」、「>」、「&」に置き換えることが含まれます。
従来のアプローチ正規表現 (「safe_tags」関数など) と同様に、大量の文字列を処理するときに顕著な遅延が発生する可能性があります。このパフォーマンスの課題に対処するために、ブラウザ独自の HTML 解析機能を利用するという代替ソリューションが登場します。
この方法では、
サンプル コード:
var escape = document.createElement('textarea'); function escapeHTML(html) { escape.textContent = html; return escape.innerHTML; } function unescapeHTML(html) { escape.innerHTML = html; return escape.textContent; }
デモは次のとおりです:
console.log(escapeHTML('<b>Hello world</b>')); // Outputs "<b>Hello world</b>" console.log(unescapeHTML('<b>Hello world</b>')); // Outputs "<b>Hello world</b>"
大なり記号 ('>') のエスケープをスキップするという提案は、パフォーマンスを最適化するために魅力的に見えるかもしれませんが、セキュリティ リスクを引き起こします。エスケープされていない「>」文字を使用すると、攻撃者が悪意のあるコードをスクリプトに挿入できるため、このオプションはお勧めできません。
以上がブラウザの HTML 解析を利用するのが、HTML タグ エンティティをエスケープする最も効率的な方法ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。