JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net (767レス)
JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1449440793/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
435: デフォルトの名無しさん [sage] 2016/10/16(日) 16:56:27.94 ID:u0ZoFejP ・「クライアントサイド」のJavaScriptでは、innerHTMLをエスケープ(サニタイズ)する必要ないのか? サイトのJSON_APIがスクリプトタグを含む文字列を送ってきていて、 こちらのGreaseMonkeyスクリプトは今はそれをそのまま表示してしまっている。(見た目は消える) これはXSS的に問題だと思っていたのだが、以下を見ると、またこちらでも試した限り、 divタグの中身等としてappendChild/insertBeforeする分には実行されないようだ。 > が!残念ながらこの場合はscriptは動きません。 > http://tech-blog.tsukaby.com/archives/894 とはいえ、見た目消えてしまうのでどのみち修正は必要なのだが、 XSSの脆弱性という意味での対策は必要ないということでいいのだろうか? 俺はJavaScriptの専門家ではない。 したがって情報は基本的に全てWebなのだが、例えば以下のように、 > 例えば、DOM Based XSSを発生させる典型的なコードの例として、 > 以下のようなinnerHTMLの使用があったとします。 > // ★★★脆弱なコードの例★★★ > var div = document.getElementById( "msg" ); > div.innerHTML = some_text; // 外部からコントロール可能な文字列 > http://www.atmarkit.co.jp/ait/articles/1312/17/news010_2.html とあって、その後「ブラウザー上で」エスケープするなりcreateTextNodeをしているわけだが、 これって全くの間違いで、必要ないのだろうか? (サーバーサイドならもちろん必要として、クライアントサイドなら問題なしでいいのか? 今のところ、筆者もこれらを混同しているように見える。 記事は2013/12と古いのだが、これ以降に仕様変更されたのか? なお上記一つ目(動かないと書いている方)のブログは2015/04) なお念のため再度言うが、「クライアントサイド」で「innerHTML」の場合。 「サーバーサイド」でもなく、「outerHTML」でもない。 http://mevius.5ch.net/test/read.cgi/tech/1449440793/435
436: デフォルトの名無しさん [sage] 2016/10/17(月) 00:31:40.71 ID:B8wMv80N >>435 script タグでなくとも イベントハンドラ( onxxxx = )で動作するコードを注入されたら危険だろう http://mevius.5ch.net/test/read.cgi/tech/1449440793/436
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
2.192s*