回答編集履歴
2
追記
answer
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
この要件は必須ですかね?
|
|
4
4
|
|
|
5
|
+
一番楽でかつ安全なのは、
|
|
6
|
+
1. そもそもHTMLで受け取らずMarkdown,JSON,厳密なXMLやその他パースしやすい独自マークアップで受け取る
|
|
5
|
-
|
|
7
|
+
2. 1で受け取ったマークアップをデータとしてパースしたものから、ホワイトリストに合致するものだけをHTMLとして組み立てていくというアプローチかなと思います。
|
|
6
8
|
|
|
7
9
|
信頼できないユーザーにHTMLを入力させるのは、ちょっとでもミスや考慮漏れがあったらそのまま脆弱性に繋がるので、完璧なものを作るのはかなりの工数が必要になります(ずっと昔からいろんなところで脆弱性が発生しているアプローチです)
|
|
8
10
|
|
1
補足
answer
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
一番楽でかつ安全なのは、そもそもHTMLで受け取らず(Markdown,JSON,厳密なXMLやその他パースしやすい独自マークアップで受け取る)、データとしてパースしたものをホワイトリストに合致するものだけをHTMLとして組み立てていくというアプローチかなと思います。
|
|
6
6
|
|
|
7
|
-
信頼できないユーザーにHTMLを入力させるのは、ちょっとでもミスや考慮漏れがあったらそのまま脆弱性に繋がるので、完璧なものを作るのはかなりの工数が必要になります(ずっと昔からいろんなところで
|
|
7
|
+
信頼できないユーザーにHTMLを入力させるのは、ちょっとでもミスや考慮漏れがあったらそのまま脆弱性に繋がるので、完璧なものを作るのはかなりの工数が必要になります(ずっと昔からいろんなところで脆弱性が発生しているアプローチです)
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|