MySQLには文字エンコーディングを変更する「SET NAMES」SQL文が用意されています。(PostgreSQLも同様のSQL文、SET CLIENT_ENCODINGがあります)この機能はSQLコンソールからは使ってよい機能ですが、アプリケーションからは使ってはならない機能です。SQLインジェクションに脆弱になる場合があります。 Ruby on Railsの本を読んでいて、ActiveRecordを説明している部分にMySQLの文字エンコーディングを変更する場合の例としてSET NAMESが利用され... > このページを見る
最終更新時間:
2008年03月21日23時21分
みんなのブックマーク 人気(0) 新着
-
禁止だったのか...´`
- ふむふむ
- SET NAMES utf8 で文字化け回避できるけど、API 使ってちゃんとやらないとだめ。
- 「DBMSをアプリケーションから利用する場合、文字エンコーディング設定は必ずAPIを利用する」つまり「SET NAMES(SET CLIENT_ENCODING等も)は禁止」
- アプリケーションとDBで文字エンコーディングが不整合をおこす危険性、SQLではなくAPIを利用して文字エンコーディングを設定
- これはもっと知られるべき。CのAPIには書かれているが(http://dev.mysql.com/doc/refman/5.1/ja/mysql-real-escape-string.html)PHPのほうには書かれていない。(http://jp.php.net/manual/ja/function.mysql-real-escape-string.php)
- .
- phpなどのスクリプト言語での文字encodingと、DBの文字encodingの不整合を引き起こすからダメ。不整合があると、injection攻撃に対処しずらくなるし、第一データが不正になる。文字コードの設定と検出が基本。
- 今の所理由が不明。 http://cakephp.seesaa.net/article/52562968.html
このエントリーを含むエントリー(15)
-
mtml.info » Archive » PHPを用いたTwitterタイムラインの大量取得とデータベースへの格納 2 users
-
MySQLとPHPの連携:: set names utf8以外の文字化け対策 | KennyQi PHP Blog 12 users
-
MySQL SET NAMES でSQLインジェクションに脆弱 | beginsprite log 2 users
-
EC-CUBEをMySQLで動かして文字化けが起こるとき | インディゴWeb研究室 2 users
-
CodeZineの「PHPで作成する携帯会員サイトの基本」という記事の脆弱性 35 users
-
Zend Framework+MySQLの文字化け対策 - カイジのプログラマー日記 3 users
-
MySQLの文字化けに"SET NAMES"を使ったらダメらしい。。 - 医者を志す妻を応援する夫の日記 6 users
-
MySQL/Rubyにおける正しいエンコーディング変更方法 - しばそんノート 31 users
-
ギークなお姉さんは好きですか 2 users
-
yohgaki's blog - SET NAMESは禁止 32 users
-
ギークなお姉さんは好きですか 235 users
-
PHPからSET NAMESを使わない方が良い理由と対策まとめ | twk @ ふらっと 107 users
-
SQLインジェクションについて[to-R] 13 users
-
ギークなお姉さんは好きですか $_GETを安易に受け入れちゃダメ! 15 users
-
HelloWorldプラスアルファからさらに上を目指すために (PHP編) - Web屋のネタ帳 34 users



![基礎からのMySQL [基礎からのシリーズ] (プログラマの種シリーズ)](http://ecx.images-amazon.com/images/I/41cVdML6rcL._SL75_.jpg)




