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

Opened 11 years ago

Closed 11 years ago

Last modified 10 years ago

#2978 closed defect (fixed)

ファイルを添付していないトピックのIDを指定してファイルダウンロードを行うと存在しないファイルをダウンロードできる

Reported by: imamura623 Owned by: mori
Priority: minor Milestone: OpenPNE2.12.6
Component: pne-postgresql Version: 2.10.x & 2.12.x & 2.14.x
Keywords: OpenPNE2.10.12 OpenPNE2.13.4 Cc:

Description (last modified by kudo)

■現象

ファイルを添付していないトピックのIDを指定してファイルダウンロードを行うとランダム文字列からなる存在しないファイルをダウンロードできる

■原因

DBからの取得値が0件であっても、Nullにたいして暗号化処理をしている

■修正内容

DBからの取得値が0件の場合は、暗号化処理を行わないように修正した。これにより、存在しないファイルをダウンロードするのではなく、MySQLの場合と同様に、「このページにはアクセスすることができません」というエラー画面へ遷移する。

■関連情報

元のDescription

http://sns.openpne.jp/?m=pc&a=page_fh_diary&target_c_diary_id=18649より転記

URL直接指定で、存在するトピックID(添付ファイルなし)を指定して添付ファイルをダウンロードしようとすると、存在しないファイルをダウンロードしようとする。

ファイルを添付していないトピックのIDを指定して、
do_c_file_downloadにアクセスする。

条件
・PostgreSQLを使っている
・ファイルアップロード機能(本線)が有効である
・実在するトピックである

これちょっと確認中。
再現はできたけど。


なんかskypeでの一連のやり取りの一部
おがわおがわ
18:11
function db_file_c_file4filename($filename)
{
$sql = 'SELECT * FROM c_file WHERE filename = ?';
$params = array($filename);

if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') {
$lst = db_get_row($sql, $params);
$lst['bin'] = base64_decode($lst['bin']);
return $lst;
} else {
return db_get_row($sql, $params);
}
}

おがわおがわ
18:12
if ($lst = db_get_row($sql, $params)) {
$lst['bin'] = base64_decode($lst['bin']);
}
return $lst;
海老原昂輔
18:12
なるほど
おがわおがわ
18:12
でOKだと思う

こんなやりとり。

Change History (10)

comment:1 Changed 11 years ago by kiwa

Priority: minormajor

comment:2 Changed 11 years ago by kiwa

Keywords: 再現待ち removed

再現できました。

version

  • 2.10.10
  • 2.12.4
  • 2.13.2

サーバ

  • CentOS5
    • php 5.1.6
    • mysql 5.0.22
    • psql 8.1.9

条件

  • config.phpの設定でOPENPNE_USE_FILEUPLOADがtrueになっている
  • PostgreSQLである

※MySQLでは再現せず

手順

  1. トピック作成画面(pc_page_c_topic_add)にて、適当なファイルを添付した状態でトピックを作成する
  2. 1で作成したトピックのトピック詳細(pc_page_c_topic_detail)でファイルダウンロードリンクのURLをコピーする
  3. 2でコピーしたURLのtarget_c_topic_idを「存在するがファイル添付はされていない」target_c_topic_idの値に変更し、アクセスする
  4. 「○○.part」という存在しない0byteのファイルがダウンロードされる

※MySQLの場合、4は「このページにはアクセスすることができません」エラーメッセージになりDLすることができない

comment:3 Changed 11 years ago by ebihara

Priority: majorminor

comment:4 Changed 11 years ago by ebihara

Keywords: OpenPNE2.10.12 OpenPNE2.13.4 added
Milestone: OpenPNE2.12.6

comment:5 Changed 11 years ago by mori

Owner: changed from nobody to mori
Status: newassigned

担当します。

comment:6 Changed 11 years ago by mori

Keywords: 確認中 added

以下のリビジョンを修正しました。

comment:7 Changed 11 years ago by mori

Description: modified (diff)

comment:8 Changed 11 years ago by ebihara

Keywords: テスト待ち added; 確認中 removed

comment:9 Changed 11 years ago by kiwa

Keywords: テスト待ち removed
Resolution: fixed
Status: assignedclosed

確認しました。問題ありません。

comment:10 Changed 10 years ago by kudo

Description: modified (diff)
Note: See TracTickets for help on using tickets.