PostgreSQL security releases[PostgreSQL][Security]

このエントリーをはてなブックマークに追加


2006-05-24


http://www.postgresql.org/docs/techdocs.50
via http://lwn.net/Articles/184760/rss
via http://traiss.tabesugi.net.nyud.net:8090/lwn.html

今日はこれで半日は潰れた……どうも単純なアップデートだと、アプリケーションによっては痛い目を見る気がします。

取るべき対策は

1. PostgreSQLサーバのアップデート
2. クライアント側のドライバのアップデート
3. いくつかのアプリでは、改修も必要

こんな感じでしょうか?

目を通しておくべきドキュメントは

http://www.postgresql.org/docs/techdocs.52

からリンクのある

FAQ
User's Guide
Technical Information on the Security Hole

の3つ。

このアップデートで、PostgreSQLサーバには

1. UTF-8, SJIS などマルチバイトなエンコードで、不正な文字コードをきちんとチェックするようになった。
2. default で、文字コードが SJIS, BIG5, GBK, GB1803, UHC の場合、エスケープ文字として "\" が使えなくした。

の2つの変更が加えられています。特に後者が曲者で、SJIS を使っており、なおかつエスケープ文字として "\" を利用しているようなアプリを書いてると、該当部分の書き直しが必要になるようです(あってるよね?)

ちなみに、このエスケープ文字の挙動に関しては

    * backslash_quote = on : Allow \' always (old behavior; INSECURE
    * backslash_quote = off : Reject \' always
    * backslash_quote = safe_encoding : Allow \' if client_encoding is safe


こんな感じで、以前の挙動に戻せたりするらしい。ちなみに前記したように、default の挙動は

 backslash_quote = safe_encoding


だそうです。

アプリが動かなくなった!とか、クライアント側のドライバのアップデートが抜けてた! とかありそうな話だ……

ちなみになぜマルチバイトエンコードを利用して、SQL Injection が可能となるのか? それについては、上でも挙げた

Technical Information on the Security Hole

に、非常に詳しく書いてあるので、ご一読をお奨めします。そっか表か……



IPv4/IPv6 meter
検索キーワードは複数指定できます
ChangeLogを検索
Google
Web www.kunitake.org
思ったより安い……時もある、Amazon

カテゴリ