Your SlideShare is downloading. ×
15分でできるSQLインジェクション
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

15分でできるSQLインジェクション

3,075
views

Published on

2011年4月23日の minami.rb 第7回勉強会のLTで発表した「15分でできるSQLインジェクション」の発表資料です。

2011年4月23日の minami.rb 第7回勉強会のLTで発表した「15分でできるSQLインジェクション」の発表資料です。

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,075
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 15分でできるSQLインジェクション よしだあつし
  • 2. 自己紹介● 名前: 吉田篤● 生年月日: 1983年1月4日● 性別: 無職系男子● 最近のお気に入り: scala Android
  • 3. SQLインジェクション
  • 4. SQLインジェクションとは?● Webアプリケーションの脆弱性の一つ● 「任意のSQLが実行できる」脆弱性● 危険度: 大
  • 5. デモ データの作成 ↓ データ一覧を表示 ↓ 検索 ↓SQLインジェクション発動
  • 6. 対策
  • 7. DBを使わない!
  • 8. というわけにもいかないので
  • 9. 対策(Railsの場合)
  • 10. 1、プレースホルダを使うparams[:user][:name] = “Guns N Roses”# ダメな例User.where("name like %#{params[:user][:name]}%")#=> SELECT "users".* FROM "users" WHERE (name likeGuns N Roses)# 良い例User.where("name like ?", "%#{params[:user][:name]}%")#=> SELECT "users".* FROM "users" WHERE (name likeGuns N Roses)
  • 11. 2、どうしてもSQLを直接実行しないと いけない場合は値をサニタイズするclass User < ActiveRecord::Base def self.force_bang(hostname) values = sanitize_sql_array(["pending = ?","t"]) conditions = sanitize_sql_array(["emaillike ?", hostname]) update_all(values, conditions) endendUser.force_bang("hotmail.com")
  • 12. セキュリティで大切な事
  • 13. ほむほむ「もう誰も信じない」(権利の関係上画像は削除しました)
  • 14. まとめ● SQLインジェクション怖いです● プレースホルダを使え!● RailsではなるべくSQLをそのまま実行する のはやめましょう● どうしてもSQLを実行しないといけないとき は全ての値をサニタイズしましょう
  • 15. おまけ
  • 16. mail gem にパッチが取り込まれました
  • 17. ご清聴ありがとうございました