質問編集履歴
1
誤字の修正をしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -62,7 +62,7 @@
|
|
62
62
|
ここで仮に以下のような値をユーザーから受け付けたとします。
|
63
63
|

|
64
64
|
|
65
|
-
ここで上記のsample.htmlにおいて、2通りの値の取得方法があります。
|
65
|
+
ここで上記のsample.htmlにおいて、2通りのエディタの入力値の取得方法があります。
|
66
66
|
0. htmlでそのまま出力して値を取得する `editorInput.value = editorHtml; //html形式で取得する`
|
67
67
|
1. JSON形式で取得する(ライブラリが提供) `editorInput.value = JSON.stringify(quill_textile.getContents()) //JSON形式で取得`
|
68
68
|
|
@@ -95,8 +95,8 @@
|
|
95
95
|
実現したいこととしてこれらの値をRDBに格納し、安全に出力することとなります。
|
96
96
|
|
97
97
|
### 検討1
|
98
|
-
そこで、まずライブラリが提供する、上記のJSON形式のデータをパースしてHTMLを再構築した上で、"insert"の値をhtmlspecialchars()で出力することを検討ました。hrefやsrc属性の中身もリスクがある認識ですが、そのチェックは
|
99
|
-
ただ、実際の構造を見ていたくと分かる通り、`<ol><li>`のネスト構造を識別し難いことや、`attributes`が属性だけを属性だけを指すのではなく例えば`size`の指定があれば、`<span>`を作った上で、特定の`class`属性を指定するなど、実に使いづらい印象で、直接HTMLを取得して、自ら許可するタグを置換してホワイトリスト方式のアプローチで値を格納して出力する方がより効率的で合理的であると考えました。
|
98
|
+
そこで、まずライブラリが提供する、上記のJSON形式のデータをパースしてHTMLを再構築した上で、"insert"の値をhtmlspecialchars()で出力することを検討しました。hrefやsrc属性の中身もリスクがある認識ですが、そのチェックは別途するものとしてここでは割愛させていただきます。
|
99
|
+
ただ、実際の構造を見ていただくと分かる通り、`<ol><li>`のネスト構造を識別し難いことや、`attributes`が属性だけを属性だけを指すのではなく例えば`size`の指定があれば、`<span>`を作った上で、特定の`class`属性を指定するなど、実に使いづらい印象で、直接HTMLを取得して、自ら許可するタグを置換してホワイトリスト方式のアプローチで値を格納して出力する方がより効率的で合理的であると考えました。
|
100
100
|
|
101
101
|
### 検討2
|
102
102
|
上記検討1を踏まえて例えば、以下のように、ホワイトリストタグをHTMLを変換すれば、あとで出力する際にもある程度安全にできるのではと考えております。
|