ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 12 years ago

Closed 12 years ago

#1510 closed defect (fixed)

SET NAME で常にエラーが発生している

Reported by: kalze Owned by: ebihara
Priority: major Milestone: OpenPNE2.10.1
Component: pne-postgresql Version: 2.10.x & 2.11.x
Keywords: OpenPNE2.11.2 Cc:

Description

PostgreSQL版特有。

webapp/lib/OpenPNE/DB.phpの49行目。 $this->db->query('SET NAMES utf8');

エンコード指定している部分で、utf8が単一引用符で囲まれていないために、SQLエラーとなる。

$this->db->query("SET NAMES 'utf8'"); と書き換えることで解決する。

MySQLは引用符で囲む必要がないようなので、エラーは発生しない(のではないかと思われる) 逆に引用符で囲んでも問題ないかどうかはわかりません。

(SET NAMESはアプリケーションで実行するのはSQLインジェクションを発生させることがあるということであまりよろしくなかったはずですが)

参考 http://sns.openpne.jp/?m=pc&a=page_c_topic_detail&target_c_commu_topic_id=2835

Change History (8)

comment:1 Changed 12 years ago by kalze

Component: pne-frameworkpne-postgresql

comment:2 Changed 12 years ago by ebihara

Milestone: OpenPNE2.10.1

comment:3 Changed 12 years ago by ebihara

Owner: changed from nobody to ebihara
Status: newassigned

comment:4 Changed 12 years ago by ebihara

以下のリビジョンで修正しました。ご確認ください。

SET NAMES を実行することによるSQLインジェクションの危険性については、#1533で別に対処します。

comment:5 Changed 12 years ago by ebihara

Keywords: 確認中 added

comment:6 Changed 12 years ago by ebihara

Owner: changed from ebihara to ogawa
Status: assignednew

comment:7 Changed 12 years ago by ogawa

Keywords: OpenPNE2.11.2 added; 確認中 removed
Owner: changed from ogawa to ebihara

comment:8 Changed 12 years ago by ogawa

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.