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

回答編集履歴

2

追記

2021/04/23 09:38

投稿

tanat
tanat

スコア18778

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

1

補足

2021/04/23 09:37

投稿

tanat
tanat

スコア18778

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