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の文字化けについて