Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

2,874 views

Published on

Club MySQL #2 LT

Published in: Technology
  • Be the first to comment

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

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

×