SlideShare a Scribd company logo
本当はこわいMySQLプロトコル
Club MySQL #2
2017/11/28
とみたまさひろ
1
MySQLのXじゃない方のプロトコル
2
接続
Client Server
Connection
Initial
Authentication
OK
Client Server
3
クエリ(参照系)
Client Server
Query
Field Count
Field Info
loop [ field count ]
Record Data
loop [ record count ]
EOF
Client Server
4
クエリ(更新系)
Client Server
Query
Status
Client Server
5
クエリをパースするのはサーバー
6
クライアントはクエリが参照か更新かは知らない
7
サーバーから教えてもらう
8
特殊なクエリ
9
LOAD DATA LOCAL INFILE
クライアントのファイルをテーブルにロード
LOAD DATA LOCAL INFILE 'filename' INTO TABLE tblnam
10
クエリをパースするのはサーバー
(2回目)
11
サーバーからファイル名を教えてもらう
12
LOAD DATA LOCAL INFILE
Client Server
Query
Filename
Contents
EOF
Status
Client Server
13
クライアントの指定とは異なるファイル名が
サーバーから返されてもそれを送る
14
デモ: Proxy でファイル名を差し替える
Client Proxy Server
Query
Query
Filename(hoge)
Filename(fuga)
Contents
Contents
EOF
EOF
Status
Status
Client Proxy Server
15
こわい!
16
クエリをパースするのはサーバー
(3回目)
17
デモ: Proxy でLOAD DATA の振りをする
Client Proxy Server
Query
Query
Status
Filename
Contents
EOF
Status
Client Proxy Server
18
こわい!
19
対策
信頼できないサーバーに繋がない
SSL接続
クライアント側で LOCAL INFILE を無効化
% mysql --local-infile=false
20
おわり
21

More Related Content

PPTX
Oracle Linux 6.5 インストール
PPT
Namespace
PPTX
serverspecを使用したサーバ設定テストの実例
PDF
お前の罪を数えろ
PDF
Ruby 2.5
PDF
ネットワークこわい
PDF
MySQLの文字コード事情 2017春版
Oracle Linux 6.5 インストール
Namespace
serverspecを使用したサーバ設定テストの実例
お前の罪を数えろ
Ruby 2.5
ネットワークこわい
MySQLの文字コード事情 2017春版

More from Masahiro Tomita (20)

PDF
MySQLの文字コード事情 2017版
PDF
PDF
MySQLの文字コード事情
PDF
進捗と品質
PDF
MySQLを拡張する
PDF
「理論から学ぶデータベース実践入門」読書会スペシャル
PDF
MyNAができるまで
PDF
文字化け
PDF
PDF
メールの暗号化
PDF
文字化け
PDF
進捗と品質
PDF
アジャイルジャパン長野サテライト
PDF
🍣=🍺
PDF
本当はこわいエンコーディングの話
PDF
Sequelのすすめ
PDF
MySQLのプロトコル解説
PDF
Dockerイメージを作る
PDF
Dockerさわってみた
PDF
Nseg49 mysql
MySQLの文字コード事情 2017版
MySQLの文字コード事情
進捗と品質
MySQLを拡張する
「理論から学ぶデータベース実践入門」読書会スペシャル
MyNAができるまで
文字化け
メールの暗号化
文字化け
進捗と品質
アジャイルジャパン長野サテライト
🍣=🍺
本当はこわいエンコーディングの話
Sequelのすすめ
MySQLのプロトコル解説
Dockerイメージを作る
Dockerさわってみた
Nseg49 mysql
Ad

本当はこわいMySQLプロトコル