[pgsql-jp: 39293] Re: 'encoding "EUC_JP" has no equivalent in "UTF8"' の理由

H.Harada umi.tanuki @ gmail.com
2008年 3月 25日 (火) 11:53:29 JST


原田です。

> 以前はエンコーディング変換エラーの際に,変換できない文字をスキップして
> エラーにしていなかったのですが,それを利用した攻撃が可能であることが判
> 明し,現在の仕様に修正されたという経緯があります.

なるほど、そういう経緯があったとは知りませんでした。
最近の話題にも関わらず乗り遅れておりお恥ずかしい限りです。

しかし、下記のようなチョイスはないものかと考えています。

・テーブルデータを出力するなどの脆弱性と関係がない状況ではエラーではなく警告とする
・エンコーディングできない文字列バイトは一律'?'などに置き換える

前者については、出力の不正エンコーディングに脆弱性があるのかどうか理解していません。
後者については、'?'がふさわしいかどうか不明です。
とはいえ、現在の仕様だとどこにその不正な文字が隠れているか
発見が困難ということもあり、どうにかならないものかと考えています。


Hitoshi Harada

08/03/25 に Tatsuo Ishii<ishii @ sraoss.co.jp> さんは書きました:
> 石井です.
>
> > データベースをEUC_JPで構築し、PgAdminでアクセスした際に、
> > encoding "EUC_JP" has no equivalent in "UTF8"
> > というエラーが発生することが時々見受けられます。
> > もちろんこの原因はメッセージの通りだと理解できるのですが、
> > これを「エラー」として扱う必要ってあるのでしょうか??
> >
> > たとえばJavaだと、エンコードできない文字については
> > ??
> > のように所謂「文字化け」として扱われ(、スルーされ)ると思うのですが、
> > PostgreSQLでエラーとして処理を止めるのは、何か理由があるのでしょうか。
>
> 以前はエンコーディング変換エラーの際に,変換できない文字をスキップして
> エラーにしていなかったのですが,それを利用した攻撃が可能であることが判
> 明し,現在の仕様に修正されたという経緯があります.
>
> 詳細はこちら.
>
> http://itpro.nikkeibp.co.jp/article/COLUMN/20060530/239359/
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
>



pgsql-jp メーリングリストの案内