[解決済み】HTMLでエスケープする必要があるのはどの文字ですか?
質問
XMLと同じで、おそらくスペースの方をプラスしているのでしょうか(
)?
HTMLエスケープ文字の巨大なリストをいくつか見つけましたが、それらは は エスケープされる。私が知りたいのは 必要なもの をエスケープする必要があります。
解決方法は?
文書内のテキストコンテンツが想定される場所にテキストコンテンツを挿入している場合
1
,
通常、XML と同じ文字をエスケープする必要があります。
. 要素の内部では、これは単にエンティティエスケープのアンパサンドを含みます。
&
と、要素の区切りである小なり大なりの記号
<
>
:
& becomes &
< becomes <
> becomes >
属性値の内部では、使用している引用符をエスケープする必要があります。
" becomes "
' becomes '
場合によっては、これらの文字のエスケープを飛ばしても大丈夫なこともありますが、間違う可能性を減らすために、すべてのケースで5文字すべてをエスケープすることをお勧めします。
ASCIIエンコーディングの文書で絵文字を使おうとしている場合など、文書のエンコーディングが使用するすべての文字に対応していない場合は、それらの文字もエスケープする必要があります。最近のほとんどの文書は、Unicodeを完全にサポートするUTF-8エンコーディングでエンコードされているので、この必要はありません。
一般に、スペースは
.
は通常のスペースではなく
ノン・ブレイキング・スペース
. これを通常のスペースの代わりに使って、2つの単語の間に改行が入らないようにしたり、自動的に折りたたまれることなく余分なスペースを挿入することができますが、通常これはまれなケースです。デザイン上の制約で必要な場合を除き、このようなことはしないでください。
1
テキストコンテンツが期待される場所"とは、通常のパースルールが適用される要素または引用された属性値の内部を意味します。例えば
<p>HERE</p>
または
<p title="HERE">...</p>
. 上に書いたこと
は適用されません
は、script や style タグの内部、要素名や属性名など、特別な解析ルールや意味を持つコンテンツに適用されます。例えば
<NOT-HERE>...</NOT-HERE>
,
<script>NOT-HERE</script>
,
<style>NOT-HERE</style>
または
<p NOT-HERE="...">...</p>
.
このような文脈では、ルールがより複雑になり、セキュリティの脆弱性を導入することがより容易になります。 これらの場所に動的なコンテンツを挿入することは、絶対に避けてください。 私は、有能なセキュリティ意識の高い開発者チームが、これらの値を正しくエンコードしたと思い込んで、エッジケースを見逃して脆弱性を発生させているのを見たことがあります。通常、動的な値を属性に置き、それをJavaScriptで処理するなど、より安全な代替案があります。
どうしてもという方は Open Web Application Security Project の XSS 防止ルールです。 を参照し、留意すべき点を理解してください。
関連
-
[解決済み】iframeの背景色を変更する問題
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] 箇条書きのない順序なしリストが必要です。
-
[解決済み] リンクのように動作するHTMLボタンを作成する方法
-
[解決済み] HTML 5: Is it <br>, <br/>, or <br />?
-
[解決済み] HTMLのid属性に有効な値は何ですか?
-
[解決済み] <button> vs. <input type="button" />. Which to use?
-
[解決済み] HTMLで表示される上下の三角形(軸のない矢印)に使用できる文字は何ですか?
-
[解決済み] CSSコンテンツによるHTMLエンティティの追加
-
[解決済み】なぜHTMLは "chucknorris "を色と見なすのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】私のCSS3メディアクエリがモバイルデバイスで機能しないのはなぜですか?
-
[解決済み】iframeの高さを100%にする方法【重複】。
-
[解決済み] HTMLでSVGを使用して三日月を描画する
-
[解決済み] css画像が表示されない
-
[解決済み] 文字列が部分文字列で終わっているかどうかをXPathでテストする?
-
[解決済み] WebForms UnobtrusiveValidationMode には、'jquery' の ScriptResourceMapping が必要です。jquery という名前の ScriptResourceMapping を追加してください(大文字と小文字を区別します)。
-
[解決済み] 画像をインラインで表示する方法
-
[解決済み] フロートされた子 div の高さを親の高さに拡張するにはどうすればよいですか?
-
[解決済み] HTML5でエスケープしなければならない文字は何ですか?
-
[解決済み] jQueryでHTML文字列をエスケープする