[前][次][番号順一覧][スレッド一覧]

mysql:15181

From: goungoun <goungoun <gounx2@xxxxxxxxxx>>
Date: Tue, 02 Feb 2010 16:49:02 +0900
Subject: [mysql 15181] skip-character-set-client-handshake や SET NAMES は使うべきではない(was Re: Re: MyODBCの文字化けについて

こんにちは。

> > 2、3年前の情報なので、今現在は状況が変わっているかもしれませんが、
> > cp932, sjis を使うのは難しいです。
> > 文字化けといっても「?」になるだけでなく、insertすると
> > 余分な「\」が付くトラブルもありました。

と書きましたが、気になってネットで情報を追ってみました。

MySQLで文字化けを解決するのに、
skip-character-set-client-handshake や SET NAMES を
使うのは、もはや正解ではないようです。

理由を簡単にまとめると以下の通りです。

skip-character-set-client-handshake、SET NAMES で文字化け
などの問題を解決してしまうと、SQLインジェクションの脆弱性を生じます。
これらのオプションやコマンドは、文字コードの設定を*無理やり*
変えてしまうので、問題の表層だけ解決しまう可能性があります。
文字化け(??になったり、無用な¥が挿入されたり)、SQLインジェク
ション、がなぜ発生するかというと「サーバ/データベース/クライ
アント」の文字コードの設定が一致していないからです。

文字コードを指定する適切な方法は、使用するクライアントに
よって異なりますが、私が知っている限りでは、次の方法があります。
・my.cnf/my.iniの [client] default-character-set で指定する方法)
・--default-character-setオプションで指定する方法(mysqlのコマンドラインツール)
・専用関数を使う方法(PHPのmysql_set_charset関数)

以下で知りました。

へぼへぼCTO日記 - mysqlでskip-character-set-client-handshakeはもう使わないほうがいいと思われ
http://www.geminium.com/chiba_blog/2009/08/27/291/

yohgaki's blog - SET NAMESは禁止:
http://blog.ohgaki.net/index.php/yohgaki/2007/08/22/set_namesa_mcb_asc

以下、個人メモです。

2007/04/23-01、skip-character-set-client-handshake について - debian-etch に関するメモ(後、lennyへアップグレード)
http://goungoun.dip.jp/app/fswiki/wiki.cgi/debianetch?page=2007%2F04%2F23%2D01%A1%A2skip%2Dcharacter%2Dset%2Dclient%2Dhandshake+%A4%CB%A4%C4%A4%A4%A4%C6#p3





On Tue, 2 Feb 2010 09:48:12 +0900
土田利之 <tuchida.toshiyuki@xxxxxxxxxx> wrote:

> tuchidaです
> 
> みなさん
> ご報告がおくれてすみません。
> 
> 一応、解決したのでご報告します。
> 
> 1.ODBCについて
> MyODBC3.51のリージョンが古いもの(11とか)は過去ログをみると
> 文字化けのトラブルがあったようですが
> 
> 現在の27に関しては問題がありませんん。
> (すくなくとも私の環境にかんしてはです)
> 
> 2.ACCESSで文字がばけなくてもADOでは化ける
> 
> もっと追究すべきなのかもしれませんが対処療法的な解決として
> 1)システムDSNとして登録する際に
>   Character Set=sjisを指定
>     Return Matching Rowをチェックする
> 
> 結果的にこれでACCESS2000はリンクテーブルとして読めました。
> しかしADO接続では相変わらず文字が化ける(???となる)ため
> 接続直後に
> 「SET NAMES sjis」と指定したSQLを実行しました。
> (過去に書いたなかでエラーと書きましたが、他のSQLと”;”で区切って
> 実行したためでした)
> 
> これで読めるようになりました。
> お騒がせしました
> 
> 
> 2010年1月27日13:53 goungoun <gounx2@xxxxxxxxxx>:
> > こんにちは。
> >
> > # 参考ということで。
> >
> > 2、3年前の情報なので、今現在は状況が変わっているかもしれませんが、
> > cp932, sjis を使うのは難しいです。
> > 文字化けといっても「?」になるだけでなく、insertすると
> > 余分な「\」が付くトラブルもありました。
> >
> > mysql:13883 以降でやりとりしています。
> >
> > mysql:13801-13900
> > http://www.mysql.gr.jp/mysqlml/mysql/thread/13801-13900
> >
> > 私が調べたものでまとめ的に投稿したのは以下
> >
> > mysql:13924
> > http://www.mysql.gr.jp/mysqlml/mysql/msg/13924
> >
> > <環境>
> > ・MySQLサーバ
> >  mysqld  Ver 5.0.32-Debian_7etch1-log for pc-linux-gnu on i486 (Debian etch distribution)
> >  utf8環境です。
> > ・MyODBC
> >  mysql-connector-odbc-3.51.14-win32.msi
> > ・Access2000
> > ・MDAC2.8
> >
> > での話として書いてます。
> >
> > よくあるトラブルのようなので、自前の環境で解決するかどうかは
> > 別として、googleなどで検索すれば情報は
> > たくさん見つかると思います。
> >
> >
> >
> >
> > 以下、主題とは関係ありませんが。。。
> >
> > On Wed, 27 Jan 2010 12:42:23 +0900
> > Masaaki Matsuyama <masakun@xxxxxxxxxx> wrote:
> >> 真・技術系メーリングリスト FAQ
> >> <http://www.geocities.co.jp/SiliconValley/5656/>
> >
> > 真・技術系はわりと難解だと思います。量も多いですし。
> > 個人的には、
> >
> > 技術系メーリングリストで質問するときのパターン・ランゲージ
> > http://www.hyuki.com/writing/techask.html
> >
> > がお勧めです。
> > 量も多くないので、すぐ読めますし実践的です。
> >
> >
> > --
> > goungoun <gounx2@xxxxxxxxxx>
> > http://goungoun.dip.jp/app/
> >
> >
> >

-- 
goungoun <gounx2@xxxxxxxxxx>
http://goungoun.dip.jp/app/


[前][次][番号順一覧][スレッド一覧]

     15164 2010-01-26 17:16 [Isamu Moriyama <mori] Re: MyODBCの文字化けについて            
     15165 2010-01-26 17:25 ┗[naya <SNA02388@xxxxx]                                       
     15166 2010-01-27 09:43  ┗[土田利之 <tuchida.to]                                     
   @ 15167 2010-01-27 10:57   ┗[遠藤 俊裕 <endo@xxxx]                                   
     15168 2010-01-27 11:06    ┗[土田利之 <tuchida.to]                                 
     15169 2010-01-27 11:25     ┗[Masaaki Matsuyama <m]                               
     15170 2010-01-27 11:43      ┗[土田利之 <tuchida.to]                             
     15171 2010-01-27 12:13       ┣[遠藤 俊裕 <endo@xxxx] 閑話休題(was:Re: Re: MyODBCの文字化けについて)
     15172 2010-01-27 12:33       ┃┣[土田利之 <tuchida.to]                         
     15173 2010-01-27 12:42       ┃┣[Masaaki Matsuyama <m]                         
     15174 2010-01-27 13:27       ┃┗[遠藤 俊裕 <endo@xxxx]                         
     15175 2010-01-27 13:53       ┗[goungoun <gounx2@xxx]                           
     15179 2010-02-02 09:48        ┗[土田利之 <tuchida.to]                         
     15180 2010-02-02 16:41         ┣[goungoun <gounx2@xxx]                       
->   15181 2010-02-02 16:49         ┗[goungoun <gounx2@xxx] skip-character-set-client-handshake  や SET NAMES は使うべきではない(was Re:  Re: MyODBCの文字化けについて