PDOにおけるSQLインジェクションの危険性とその回避についてまとめ - Togetter
Twitterのつぶやきマッシュアップメディア!
@togetter_jpをフォロー
ホーム
まとめ作成
お知らせ
設定
ログイン
ついに決定!第2回トゥギャッターまとめまとめ!2月25日開催!
トップページ
注目のまとめ
今週人気のまとめ
新着のまとめ
すべて
ニュース
社会
地域
芸能・スポーツ
IT・Web
科学・教養
カルチャー
趣味
生活
仕事
ネタ・お笑い
ログ・日記
震災
AKB48
なりきり
アントーニョ
支援物資
原発
復興
アーサー
速報
国内
アジア
アメリカ
ヨーロッパ
その他
政治
経済
国際
法律
環境
コラム
東京
東京近郊
北海道
東北
関東
北陸・信越
東海
近畿
中国・四国
九州・沖縄
海外
芸能
テレビ
ラジオ
野球
サッカー
ゴルフ
格闘技
競馬
モータースポーツ
その他
Android
Apple
インターネット
パソコン
モバイル
ガジェット
サイト制作
プログラミング
その他
科学
テクノロジー
エネルギー
数学
物理
宇宙
自然
人文
建築
心理
その他
アニメ
ゲーム
マンガ
アイドル
映画
音楽
書籍
演劇
ファッション
社会学
カメラ
車・バイク
電車
旅行
釣り
歴史
アート
デザイン
動物
その他
ハウツー
レシピ
グルメ
恋愛
マネー
節約
健康・医療
教育
ペット
起業・ベンチャー
経営
マーケティング
会計・人事
法務
就職・転職
語学・資格
ネタ
お笑い
大喜利
画像・動画
やってみた
その他
ログ
日記
思い出
雑談
メモ
飲み会
議事録
イベント
セミナー
復興
原発
支援
政府
自治体
2010/07/02 09:30:06
pdo
php
+
PDOにおけるSQLインジェクションの危険性とその回避についてまとめ
PHPのデータベース・アクセス・ライブラリPDOは、DB接続時の文字エンコーディング指定ができないため、文字エンコーディングの選択によっては、プレースホルダを使っていてもSQLインジェクション脆弱性が発生しうるという徳丸氏のブログ内容に対し、識者がその回避方法について試し、報告しています。
by
yousukezan
8 fav
3442 view
お気に入りに登録ならここをクリック!
まとめ
メニューを開く
一括削除
日記書いた『ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション) 』
http://www.tokumaru.org/d/20100701.html#p01
返信する
RTする
ふぁぼる
ockeghem
2010/07/01 09:25:42
@ockeghem
さんの日記を見てふと思い出したがMySQLのJDBC大丈夫だっけ?\の取り扱いを妙な対応してたよなぁ
返信する
RTする
ふぁぼる
ikepyon
2010/07/01 10:01:23
PDO::MYSQL_ATTR_DIRECT_QUERY を false RT:
@ockeghem
: 日記書いた『ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション) 』
http://bit.ly/aAKdEL
返信する
RTする
ふぁぼる
haruyama
2010/07/01 10:37:59
PDO::ATTR_EMULATE_PREPARESをfalseにすると、よさそうです RT
@haruyama
: PDO::ATTR_EMULATE_PREPARES も falseにしておく必要があるか
返信する
RTする
ふぁぼる
ockeghem
2010/07/01 10:50:32
.
@ockeghem
「PDOは接続時に文字エンコーディングを指定できない(指定しても無視される)」ってほんとうですか? mysql_real_connect() が my.cnfの [client]セクションを読むので, my.cnfを指定することで可能と認識していましたが.
返信する
RTする
ふぁぼる
haruyama
2010/07/01 10:51:31
PDO、小泉守義さんのブログによると、昔は名前つきプレイスホルダ使用時にエミュレーションしてたけど、今は、PDO::ATTR_EMULATE_PREPARESをfalseにすると、名前つきプレイスホルダでも、プリペアード・ステートメントになるようですね
返信する
RTする
ふぁぼる
ockeghem
2010/07/01 10:52:48
パケットキャプチャする限りは、常にLatin1ですね。私がWindows上で試しているから、という可能性はあります。 RT
@haruyama
: .
@ockeghem
「PDOは接続時に文字エンコーディングを指定できない(指定しても無視される)」ってほんとうですか?
返信する
RTする
ふぁぼる
ockeghem
2010/07/01 10:56:59
.
@haruyama
ありがとうございます。問題はそこではなくて、PDOがPrepared Statuementのエミュレーションする時のパーサが文字エンコーディングを考慮するかどうかなんですね
返信する
RTする
ふぁぼる
ockeghem
2010/07/01 11:01:20
.
@ockeghem
charset=が効かないのはFAQですね. my.cnf で指定してもだめですか?
返信する
RTする
ふぁぼる
haruyama
2010/07/01 11:01:25
@ockeghem
試してないですけれど、
http://bit.ly/awE8ZR
を読む限りではDBD::mysqlと同じようにREAD_DEFAULT_FILEを指定することによってcharset指定できるんじゃないすかね
返信する
RTする
ふぁぼる
nihen
2010/07/01 11:02:46
.
@ockeghem
Cのmysql_real_escape_string()の第1引数に関係しています. PHPソースのmysql_handle_quoter() の中ですね
返信する
RTする
ふぁぼる
haruyama
2010/07/01 11:05:09
@ockeghem
あ、libmysqlclientの動的プレースホルダじゃなくてPDOが独自にやってるのであれば結局意味ないのかな、、試してみるかな
返信する
RTする
ふぁぼる
nihen
2010/07/01 11:05:18
.
@ockeghem
MySQLの中まではみてないのですが, 適当に[client]で文字セットが設定されていたり サーバが文字セットを強制していれば 適当な文字エンコーディングでのエスケープが行なわれると思うのですが
返信する
RTする
ふぁぼる
haruyama
2010/07/01 11:06:53
.
@haruyama
PDOがmysql_real_escape_string()を呼んでいるかどうかが問題になると思います。少し古いですが、
https://www.codeblog.org/blog/moriyoshi/20061221.html
返信する
RTする
ふぁぼる
ockeghem
2010/07/01 11:09:17
Windowsでは、PDO::MYSQL_ATTR_READ_DEFAULT_FILEが無効で、my.cnfが指定できないようです。Linux上で調べます RT
@haruyama
: …my.cnf で指定してもだめですか?
返信する
RTする
ふぁぼる
ockeghem
2010/07/01 11:20:10
.
@ockeghem
pdoのSQLのパースがこのままなら Shift_JISの場合は書いてあるようにおかしくなりますね.
返信する
RTする
ふぁぼる
haruyama
2010/07/01 11:21:53
.
@ockeghem
pdo_sql_parser.re からは stmt->dbh->methods->quoter という形で mysql_handle_quoter()が呼ばれています(MySQLなら)
返信する
RTする
ふぁぼる
haruyama
2010/07/01 11:23:23
.
@haruyama
遅ればせながらPDOのソースを見たら、mysql_real_escape_string()を呼んでいるようでもあるので、もう少し調べます
返信する
RTする
ふぁぼる
ockeghem
2010/07/01 11:23:32
@ockeghem
どんな問題について話しているのか追えてないので的はずれなことをいってそうですが、mysql_real_escape_string() は、PDO の MySQL ドライバが入った当初から使われていました。
返信する
RTする
ふぁぼる
moriyoshit
2010/07/01 11:26:21
@moriyoshit
ほう、それでもPDOは文字エンコーディングを考慮していなかったのでしょうか?
返信する
RTする
ふぁぼる
ockeghem
2010/07/01 11:27:46
これです
http://www.tokumaru.org/d/20100701.html#p01
RT
@moriyoshit
:
@ockeghem
どんな問題について話しているのか追えてない…
返信する
RTする
ふぁぼる
ockeghem
2010/07/01 11:29:09
@ockeghem
文字エンコーディングが考慮されないのは、MySQL の実装が古いなどの理由で、プリペアードステートメントが PDO 側でエミュレーションされる場合です。
返信する
RTする
ふぁぼる
moriyoshit
2010/07/01 11:30:01
@ockeghem
その場合、SQL が一旦 PDO でパースされ、プレースホルダが抽出されるのですが、このパーサが文字エンコーディングを考慮していません。
返信する
RTする
ふぁぼる
moriyoshit
2010/07/01 11:30:10
.
@moriyoshit
なるほど。すると、パーサが通った後のエスケープでは、文字エンコーディングを考慮しているということでしょうか?
返信する
RTする
ふぁぼる
ockeghem
2010/07/01 11:32:20
@ockeghem
PHP 5.3.0 とリンクしている libmysqlclient のバージョンが古い可能性があります。 niMySQL は positional な placeholder をサポートしているので、この部分がなんちゃって、になることはありません。
返信する
RTする
ふぁぼる
moriyoshit
2010/07/01 11:39:10
Content from Twitter
残りを読む(30)
2011年を振り返ろう!傑作まとめランキングベスト20をこちらで公開中だよ。
みんなのおすすめ商品
商品を編集
おすすめ商品を登録する
入門PHPセキュリティ
Chris Shiflett
PHPサイバーテロの技法―攻撃と防御の実際
GIJOE
Webアプリケーションのセキュリティ完全対策―不正アクセスや情報漏洩を防ぐ
徳丸 浩,田畑 拓,三好 雅貴,園田 健太郎
ウェブアプリケーションセキュリティ
金床
ハッキングツール・プログラム大全
金床
設定を変更する
Check
お気に入り
いいね
うーん
ブログ等に貼付ける?
iframe版
拡張版
new
張付けプレビュー
コメント
追加しました。
yousukezan
2010/07/02 13:46:05
コメントを入力してください。
Twitterにも投稿する
関連するオススメまとめ
岡崎市中央図書館システムのSQLインジェクションの可能性
なぜPHPアプリにセキュリティホールが多いのか? 「第42回 PostgreSQL 9.0に見るSQLインジェク..
なぜPHPアプリにセキュリティホールが多いのか? 「第42回 PostgreSQL 9.0に見るSQLインジェク..
PHP5.3.6からPDOの文字エンコーディング指定が可能となったがWindows版では不具合にまつわる件
@random な勉強会 (2010/10/30)
powered by Preferred Infrastructure
まとめを作成する
@togetter_jp
プロフィール
山本洋介山です。
yousukezan
link
twitter
rss
マイタグ
:
セキュリティ
このユーザの更新状況や活動をチェック!
フォローしている
0
フォローされている
1
まとめ
34
お気に入り
3
コメント
28
第21回セキュリティもみじセミナーまとめ
AVTokyo2011まとめ
#LAC_seminar1101まとめ
#ハロウィンセキュリティまとめ
AppLogについてまとめ
もっと見る
僕たちの好きな金八先生
夏の夜の血統話ひとりごち。
不正入金グループを逮捕したらその中に僕の通帳があり千五百万振り込まれていた
AppLogについてまとめ
DEFCON19日本の人まとめ
「ウイルス作成罪」の成立についての感想
PSNの会見まとめ
第16回 まっちゃ445勉強会 まとめ
もっと見る
注目のまとめリスト
羽海野チカ先生、映画『ベルセルク』の感想を熱く語る
通販でカード払いの怖い話
有吉が怖がるミザリーの正体とは!?
「ウクライナでは店の食材にベクレル数が書いてある」は本当か?
その3・上杉隆VS町山智浩(1月31日)のれんに腕押し編 @ues..
その4・上杉隆VS町山智浩(2月1日)ADHD障害偏見助長RT編 @u..
トゥギャッター通信
第63回「iPhone爆発と震災の備え」
第62回「byeハドソンとエロ駅弁」
第61回「謎の雲とセンター試験」
第60回「江戸ハックとお雑煮」
号外「トゥギャッターが選んだ傑作まとめ20選」
トゥギャッターからのお知らせ
とっても簡単!はじめてのトゥギャッター..
まとめへのフィードバック機能がつきました!
まとめ作成画面でつぶやきへの返信の流れ..
トゥギャッターのまとめは「はてなダイア..
t.coやbit.lyなど、短縮された..
過去のアーカイブ
2012-02-03の人気まとめ
2012-02-02の人気まとめ
2012-02-01の人気まとめ
2012-01-31の人気まとめ
2012-01-30の人気まとめ
最近追加された商品
Aldrich Library of FT-IR Spectra, 3 Volume Set
よい子は見ちゃいけない英会話―Real Lovers’ English
宮崎商店 料亭の隠し味 玉砂糖 1kg
フーリエ変換赤外分光法―化学者のためのFT‐IR (測定法シリーズ (10))
ドライイースト 55g
AMON [ エーモン工業 ] AODEA [ クルマいじりをもっと楽しく! ] 工作計画! フ..
コメント