teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

改行位置の修正

2020/12/06 16:24

投稿

think49
think49

スコア18194

answer CHANGED
@@ -11,11 +11,9 @@
11
11
 
12
12
  - [1.5.1 HTML テキストの入力を許可しない場合の対策 - 安全なウェブサイトの作り方 第7版 (pdf)](https://www.ipa.go.jp/files/000017316.pdf#page=26)
13
13
 
14
- > ウェブページを構成する要素として、ウェブページの本文や HTML タグの属性値等に相当する全て
14
+ > ウェブページを構成する要素として、ウェブページの本文や HTML タグの属性値等に相当する全ての出力要素にエスケープ処理を行います。
15
- の出力要素にエスケープ処理を行います。エスケープ処理には、ウェブページの表示に影響する特別
16
- な記号文字(「<」、「>」、「&」等)を、HTML エンティティ(「&lt;」、「&gt;」、「&amp;」等)に置換する方法が
15
+ > エスケープ処理には、ウェブページの表示に影響する特別な記号文字(「<」、「>」、「&」等)を、HTML エンティティ(「&lt;」、「&gt;」、「&amp;」等)に置換する方法があります。
17
- あります。また、HTML タグを出力する場合は、その属性値を必ず「"」(ダブルクォート)で括るようにし
18
- ます。そして、「"」で括られた属性値に含まれる「"」を、HTML エンティティ「&quot;」にエスケープします。
16
+ > た、HTML タグを出力る場合は、その属性値を必ず「"」(ダブルクォート)で括るようにします。そして、「"」で括られた属性値に含まれる「"」を、HTML エンティティ「&quot;」にエスケープします。
19
17
 
20
18
  ※IPAでは触れていませんが、IEには**バッククォートを属性値の引用符として扱う仕様**が存在しています。
21
19
 

2

markdown

2020/12/06 16:24

投稿

think49
think49

スコア18194

answer CHANGED
@@ -21,10 +21,9 @@
21
21
 
22
22
  - [IE 属性値 バッククォート - Google 検索](https://www.google.com/search?q=IE+%E5%B1%9E%E6%80%A7%E5%80%A4+%E3%83%90%E3%83%83%E3%82%AF%E3%82%AF%E3%82%A9%E3%83%BC%E3%83%88)
23
23
 
24
- ### ータベース
24
+ ### エスケプのイミング
25
25
 
26
26
  > 私の作成したアプリでは、データベース保存時にエスケープをしていて、
27
- 「/」以外の5種類全てをエスケープしてしまうと、マークダウンによるコードの表示が出来なくなってしまうからです。
28
27
 
29
28
  データベースに格納された文字も「外部から来る文字」ですので、信用してはいけません。
30
29
  **HTMLエスケープはHTML出力する直前に行うもの**です。
@@ -37,4 +36,14 @@
37
36
  出力するすべてに対してエスケープ処理を施すよう、一貫したコーディングをすることで、対策漏れ17を
38
37
  防止することができます。
39
38
 
39
+ ---
40
+
41
+ > 「/」以外の5種類全てをエスケープしてしまうと、マークダウンによるコードの表示が出来なくなってしまうからです。
42
+
43
+ markdown文字列のparse時にはエスケープする必要はありません。
44
+ HTMLに変換するタイミングでHTMLエスケープを行います。
45
+
46
+ 1. markdownからHTMLへの変換処理
47
+ 2. 入力されたHTML文字列を出力文字列に変換する処理(※HTML入力を受け付けるmarkdownの場合)
48
+
40
49
  Re: wsdwe さん

1

バッククォート

2020/12/06 16:17

投稿

think49
think49

スコア18194

answer CHANGED
@@ -17,7 +17,7 @@
17
17
  あります。また、HTML タグを出力する場合は、その属性値を必ず「"」(ダブルクォート)で括るようにし
18
18
  ます。そして、「"」で括られた属性値に含まれる「"」を、HTML エンティティ「&quot;」にエスケープします。
19
19
 
20
- ※IPAでは触れていませんが、**IEにはバッククォートを属性値の引用符として扱う仕様**が存在しています。
20
+ ※IPAでは触れていませんが、IEには**バッククォートを属性値の引用符として扱う仕様**が存在しています。
21
21
 
22
22
  - [IE 属性値 バッククォート - Google 検索](https://www.google.com/search?q=IE+%E5%B1%9E%E6%80%A7%E5%80%A4+%E3%83%90%E3%83%83%E3%82%AF%E3%82%AF%E3%82%A9%E3%83%BC%E3%83%88)
23
23