Railsの会 12日目「セキュリティー」
今日の進捗です。
agenda
- 新単語集 <%=, ERB , yield
- sqlインジェクション
- XSS
- CSRF
- まとめ
1.新単語
-
<%= Rubyの出力。
-
ERB
Rails の標準テンプレートエンジン。(他の種類にhamlとかもある)
-
yeild 特殊のページ。
使い方
出力がいらないコード
<% ~ %>
結果を出力
<%= ~ %>
結果をエスケープしてしないで出力
<%== ~ %>
後ろの改行を取り除く
<% ~ -%>
行頭までの空白を削除
<%- ~ %>
コメント
<%# ~ %>
2.SQLインジェクション
SQL文を使ってパスワードや個人情報を盗んだり、なりすましをしたりする。
攻撃の仕方
ログイン画面等の中に「’」を入力し、エラー文が出てくるか確認。
もしエラー文が出てきたら、PHPを使用でき、パスワードや不正アクセス等が可能になる。
ログイン画面でパスワードの欄に不正なデータベース命令を実行するための文字列を入力することで、パスワードを知らない攻撃者が正当な利用者としてログインし、クレジットカード番号などの個人情報を窃取したりすることがあります。
また、別の方法によって、データベースに保存されているデータを一括で取り出されてしまったり、データが不正に改ざんされたりすることもあります。最近は、このような手法による個人情報の漏洩(ろうえい)事件が相次いで発生しています。SQLインジェクションへの対策|情報管理担当者の情報セキュリティ対策|企業・組織の対策|国民のための情報セキュリティサイト
3.XSS
クロスサイトスクリプティング。管理人に URLを押させると別の悪質なサイトに飛ばされ利用者にも被害が出る。
偽サイト等を作り、改ざんをするのが一般的。
XSS攻撃
XSS(クロスサイトスクリプティング) 。JavaScriptを実行するコードを制作者の意図していない場所に埋め込む手法であって、PHPを使って実際にプログラミングをしていくうえで真っ先に考えなければいけないのがこの攻撃に対する対策です。
コメントにアラート等入れるとサイトを表示させるたび出したりして攻撃できる。
<script>alert(1234)</script>
4.CSRF
CSRFを「よそのサイトの機能を呼び出す攻撃」と表記
リクエスト強要(CSRF:Cross-site Request Forgery)とは、別のサイトに用意したコンテンツ上の罠のリンクを踏ませること等をきっかけとして、インターネットショッピングの最終決済や退会等Webアプリケーションの重要な処理を呼び出すようユーザを誘導する攻撃である。
URLをクリックしたり、メールを開いたりするだけで、感染させることができます。。
実行手順
- 攻撃用のコードを用意する
- URLをメッセージを書く。
5.まとめ
webに必須知識の内容を学びました。
1.sqlインジェクション 「'」で確認できる。SQL文を使ってデータを操作する。
2.XSS クロスサイトスクリプティング。訪問者に被害を出す攻撃
3.CSRF 管理者にURLを送りクリックさせ、データの改ざんを行う。