SlideShare a Scribd company logo
15分でできるSQLインジェクション




              よしだあつし
自己紹介

●   名前: 吉田篤
●   生年月日: 1983年1月4日
●   性別: 無職系男子
●   最近のお気に入り: scala Android
SQLインジェクション
SQLインジェクションとは?

●   Webアプリケーションの脆弱性の一つ
●   「任意のSQLが実行できる」脆弱性
●   危険度: 大
デモ


    データの作成
       ↓
  データ一覧を表示
       ↓
      検索
       ↓
SQLインジェクション発動
対策
DBを使わない!
というわけにもいかないので
対策(Railsの場合)
1、プレースホルダを使う
params[:user][:name] = “Guns N' Roses”
# ダメな例
User.where("name like '%#{params[:user][:name]}%'")
#=> SELECT "users".* FROM "users" WHERE (name like
'Guns N' Roses')

# 良い例
User.where("name like ?", "%#{params[:user][:name]}
%")
#=> SELECT "users".* FROM "users" WHERE (name like
'Guns N'' Roses')
2、どうしてもSQLを直接実行しないと
      いけない場合は値をサニタイズする
class User < ActiveRecord::Base
  def self.force_bang(hostname)
    values = sanitize_sql_array(["pending = ?",
"t"])
    conditions = sanitize_sql_array(["email
like ?", hostname])
    update_all(values, conditions)
  end
end
User.force_bang("h'otmail.com")
セキュリティで大切な事
ほむほむ「もう誰も信じない」
(権利の関係上画像は削除しました)
まとめ

●   SQLインジェクション怖いです
●   プレースホルダを使え!
●   RailsではなるべくSQLをそのまま実行する
    のはやめましょう
●   どうしてもSQLを実行しないといけないとき
    は全ての値をサニタイズしましょう
おまけ
mail gem にパッチが取り込まれました
ご清聴ありがとうございました

More Related Content

PDF
CTFトラックの報告的なもの(公開版)
PDF
自己紹介LT「俺の迷走っぷり」
PDF
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
PDF
MySQLユーザ視点での小さく始めるElasticsearch
PDF
Vue.jsでテトリスを作った話@宮崎 × 沖縄 JSやらNight!
PDF
20160416 jawsdays2016 re-cap001
PDF
地雷職人の朝は早い
PPTX
Re:中の人から始めるアイマス生活:20171216 アイマスハッカソン
CTFトラックの報告的なもの(公開版)
自己紹介LT「俺の迷走っぷり」
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
MySQLユーザ視点での小さく始めるElasticsearch
Vue.jsでテトリスを作った話@宮崎 × 沖縄 JSやらNight!
20160416 jawsdays2016 re-cap001
地雷職人の朝は早い
Re:中の人から始めるアイマス生活:20171216 アイマスハッカソン

Viewers also liked (18)

ODP
Rails3使用雑感
PDF
私はいかにしてpull request を行ったか - あるいは social development について
PDF
Railsの今昔
PDF
Next GAE Heroku を使って 3分でRailsアプリをリリース
ODP
Twitterでネットストーカーをしよう
PDF
TOEICテスト学習コース~ETS公式問題集収録~
PDF
よい名前を付けましょう リーダブルなんたらとか
PDF
僕が勉強をする モチベーションと勉強法
PDF
テスト駆動開発入門
PDF
まじょのおしごとの裏側
PDF
デバッガでデバッグしない
PDF
Dockerプレゼン
PDF
Rubyコードの最適化
PPTX
低レイヤから見たrubyプログラミング
PDF
Vue.js ハンズオン資料
PDF
Gitの使い方あれこれ
PDF
GCS2013 リーンソフトウェア開発から見るゲーム開発7つのムダ
PDF
とある診断員とSQLインジェクション
Rails3使用雑感
私はいかにしてpull request を行ったか - あるいは social development について
Railsの今昔
Next GAE Heroku を使って 3分でRailsアプリをリリース
Twitterでネットストーカーをしよう
TOEICテスト学習コース~ETS公式問題集収録~
よい名前を付けましょう リーダブルなんたらとか
僕が勉強をする モチベーションと勉強法
テスト駆動開発入門
まじょのおしごとの裏側
デバッガでデバッグしない
Dockerプレゼン
Rubyコードの最適化
低レイヤから見たrubyプログラミング
Vue.js ハンズオン資料
Gitの使い方あれこれ
GCS2013 リーンソフトウェア開発から見るゲーム開発7つのムダ
とある診断員とSQLインジェクション
Ad

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