SET NAMESは禁止
(引用)
============
脆弱性の説明は面倒ですが注意事項は簡単です。「DBMSをアプリケーションから利用する場合、文字エンコーディング設定は必ずAPIを利用する」つまり「SET NAMES(SET CLIENT_ENCODING等も)は禁止」です。
============
日本語以外の記事では、「SET NAMESを使ってはいけない」とまで書いている記事が見つからなかったので、いまだすんなりと納得できていないのですが、今後、MySQL 4.1以上を入れた共有サーバなんかではどうすればいいんでしょうか…。
“SET NAMES sjs”に問題がある、という記事は下記にありました。
t_komuraの日記
addslashes() による SQL 文字列のエスケープ回避問題
hoshikuzu | star_dust の書斎
■PHP 利用時に Shift_JIS で addslashes() によるエスケープ処理に SQL インジェクション可能な穴
“mysql_real_escape_string()でもSET NAMES sjis;等を実行した後に使うと2バイト目の0x5C文字がエスケープされないようです。”とあったので、
"0x5C SQL injection"
などで調べると、下記のページが。
http://www.postgresql.org/docs/techdocs.50
でも、このページには、
"this includes at least SJIS, BIG5, GBK, GB18030, and UHC."
とあります。大垣さんは、
SET NAMES ujis
SET NAMES utf8
SET NAMES binary
もみんな使うな、と言われているのでしょうか…。
このあたりに詳しい方、どなたか教えてください。
http://qiita.com/mpyw/items/b00b72c5c95aac573b71
Heya great website! Does running a blog such as this take a great deal of work? I have very little understanding of computer programming however I had been hoping to start my own blog soon. Anyhow, should you have any ideas or techniques for new blog owners please share. I understand this is off topic however I just wanted to ask. Many thanks! ’ http://canadadrugsonline7.com/
<a href="http://celagenericcialisonlinecheap.com/">cheap cialis</a>
cialis
<a href="http://celagenericcialisonlinecheap.com/">buy cialis</a>
http://neocialischeapbuy.com/
https://vekpaydayadvanceloanssamepayday.com/
https://vekpaydayadvanceloanssamepayday.com/
loan bad credit <a href="https://badcreditnyrc.org/">online payday loan</a> ’
discount auto insurance <a href="https://autoinsuranceratesyhd.com/">compare car insurance</a> ’
fast cash loans <a href="https://paydayloanxwer.com/">cash advance now</a> ’