Ruby on Rails でセキュアなアプリを作る:CSS/XSS 対策
こんにちわ、ネットワークセキュリティのマツジローです。
今日は、クロスサイトスクリプティング (Cross Site Scripting) 対策です。
まず、クロスサイトスクリプティングとは?
“動的にWebページを生成するアプリケーションのセキュリティ上の不備を意図的に利用し、狭義にはサイト間を横断して悪意のあるスクリプトを混入させること。また、それを許す脆弱性のこと。広義にはスクリプトを混入させずとも、任意の要素を混入させられうる脆弱性を含む。略記としてCSS、XSSがある。CSSは同分野でよく使用されるCascading Style Sheetsの略でもあるので、混乱を避けるためにXSSと表記されることが多い。”(ウィキペディア http://ja.wikipedia.org/wiki/クロスサイトスクリプティング より)
なんだかよく分からん。ので作った。
o ステップ1 ハッカーがターゲットサイトに JavaScript を仕込む
o ステップ2 ターゲットサイトを訪れた第三者がハッカーの仕込んだ JavaScript を実行する。
このように無害な JavaScript であれば良いのですが、JavaScript クッキーの操作も出来るので、例えば、セッションを盗む、なんてことも出来なのです。
従って、サイトを運営するものは、クロスサイトスクリプティング対策することが絶対必要なのです。
o 対策 Rails なら簡単。
ユーザーの入力値を画面に出すところで、サニタイジングすれば良いのだ、こんな感じ
<%=h bb.comment %> Good
<%= bb.comment %> Bad
ちなみに、h を View 以外で使う時は、ERB::Util.html_escape なのです。
ネタ -> http://pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition
マラソン -> http://blog.goo.ne.jp/matzjiro/e/1c580c6446808e6f65caa6622240ac39
今日は、クロスサイトスクリプティング (Cross Site Scripting) 対策です。
まず、クロスサイトスクリプティングとは?
“動的にWebページを生成するアプリケーションのセキュリティ上の不備を意図的に利用し、狭義にはサイト間を横断して悪意のあるスクリプトを混入させること。また、それを許す脆弱性のこと。広義にはスクリプトを混入させずとも、任意の要素を混入させられうる脆弱性を含む。略記としてCSS、XSSがある。CSSは同分野でよく使用されるCascading Style Sheetsの略でもあるので、混乱を避けるためにXSSと表記されることが多い。”(ウィキペディア http://ja.wikipedia.org/wiki/クロスサイトスクリプティング より)
なんだかよく分からん。ので作った。
o ステップ1 ハッカーがターゲットサイトに JavaScript を仕込む
o ステップ2 ターゲットサイトを訪れた第三者がハッカーの仕込んだ JavaScript を実行する。
このように無害な JavaScript であれば良いのですが、JavaScript クッキーの操作も出来るので、例えば、セッションを盗む、なんてことも出来なのです。
従って、サイトを運営するものは、クロスサイトスクリプティング対策することが絶対必要なのです。
o 対策 Rails なら簡単。
ユーザーの入力値を画面に出すところで、サニタイジングすれば良いのだ、こんな感じ
<%=h bb.comment %> Good
<%= bb.comment %> Bad
ちなみに、h を View 以外で使う時は、ERB::Util.html_escape なのです。
ネタ -> http://pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition
マラソン -> http://blog.goo.ne.jp/matzjiro/e/1c580c6446808e6f65caa6622240ac39


"Ruby on Rails でセキュアなアプリを作る:CSS/XSS 対策" へのコメントを書く