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

Opened 11 years ago

Closed 11 years ago

Last modified 10 years ago

#3004 closed defect (fixed)

拡張子無しの画像をアップロードするとSNS上でNo Image画像として表示されてしまう

Reported by: kiwa Owned by: shingo
Priority: minor Milestone: OpenPNE2.12.5
Component: 指定しない Version: 2.10.x & 2.12.x & 2.14.x
Keywords: OpenPNE2.10.11 OpenPNE2.13.4 Cc:

Description (last modified by kudo)

■現象

DBに登録されているファイル名(c_image.filename)に拡張子がない画像が、 No Image 画像として表示されてしまう。

OpenPNE2.10, OpenPNE2.12, OpenPNE2.13 では、 webapp/modules/pc/do/h_config_image.php にて拡張子無しの画像ファイルをアップロードすることでこの現象を確認することができる。

■原因

  • 他の確認画面なしの画像登録方法(do_c_edit_update_c_commuなど)と違い、拡張子を補ってDB登録をするようになっていなかった
  • 拡張子なしの画像ファイル名は不正と見なし、No Image 画像を表示するようになっていた

■修正内容

  • 他の確認画面なしの画像登録方法(do_c_edit_update_c_commuなど)に倣い、拡張子を補って登録されるように修正確認画面なしの画像登録アクション(do_c_edit_update_c_commuなど)と関数を共通化
  • ファイル名に拡張子がない場合でも、不正なファイル名と見なさないようにした。これにより、既にDBに存在する、ファイル名に拡張子がない画像も表示できるようになった

■関連情報

元のDescription

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

もともと画像のファイルをクライアント側でファイル名変更し、拡張子を削除した状態でプロフィール画像として登録しようとすると、登録できてしまう。

また、登録した画像はSNS画面上からでは見ることができない。image.phpを使ってファイル名を直接指定するとアップロードした画像が表示される。

もとがテキストファイルなどの場合は当然ながらアップロードされません。

上記症状がおこったバージョン
2.2
2.12

画像の判断(ファイル名など)をする際に、サーバにあげられた一時ファイルのファイル名を見てしまっていることが何やら原因。アップロードされたファイル名で拡張子チェックをするようにしたら、アップロードを防げるようにはなりました。

サーバ情報など後々追記しますー。 

Change History (19)

comment:1 Changed 11 years ago by nakasone

Keywords: 再現待ち removed

以下のような確認を行ったところ再現できました。

■確認ブラウザ

  • !FireFox3

■確認バージョン

  • 2.10.x
  • 2.12.x
  • trunk

■手順

  1. 手元にある画像の拡張子を削除する
  2. 写真を編集→手順1で拡張子を削除した画像をアップロードする
  3. 画像がアップロードされるがリンクはなく、表示もされていない
  4. image.phpでファイル名を直接指定する
  5. アップロードした画像が表示される

comment:2 Changed 11 years ago by ebihara

Keywords: OpenPNE2.10.11 OpenPNE2.13.4 added
Milestone: OpenPNE2.12.5

comment:3 Changed 11 years ago by shingo

Owner: changed from nobody to shingo
Status: newassigned

作業します。

comment:4 Changed 11 years ago by shingo

Description: modified (diff)
Keywords: 確認中 added

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

以下のリビジョンで確認画面なしの画像登録アクションと(do_c_edit_update_c_commu)と関数を共通化しました。 ご確認ください。

comment:5 Changed 11 years ago by ebihara

Keywords: 差し戻し added; 確認中 removed
  • image_insert_c_image_without_confirm() という関数名についてですが、この関数の役割を適切に表現しているとは思えません
  • image_insert_c_image_without_confirm() 内で用いているセッションIDですが、使用する場面が3回あるにもかかわらず、最初の1回以外はすべて session_id() をコールしています。 $sessid を使う形に統一するべきではないでしょうか
  • pc_do_c_event_edit_update_c_commu_topic, pc_do_c_topic_edit_update_c_commu_topic についても image_insert_c_image_without_confirm() を使うべきではないでしょうか
  • $upfile_obj['tmp_name'] の存在チェックの直後などに空行があると読みやすくなると思います
  • image_insert_c_image_without_confirm() も含め、 webapp/lib/util/image.php で定義されている関数の役割が関数名から判別しにくいです。ひとまず docblock 形式のコメントで説明を加えてください

comment:6 Changed 11 years ago by shingo

Keywords: 確認中 added; 差し戻し removed

以下のリビジョンで comment:5 項目1,2,4,5について修正しました。 

以下のリビジョンで comment:5 項目3について修正しました。ご確認ください。 

comment:7 Changed 11 years ago by ebihara

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

comment:8 Changed 11 years ago by kiwa

Keywords: 差し戻し added; テスト待ち removed

Descriptionに「現象」がありません。pne-guidelinesにあるバグ修正のDescriptionフォーマットにあわせてください

comment:9 Changed 11 years ago by shingo

Description: modified (diff)
Keywords: 確認中 added; 差し戻し removed

comment:8 にあげられた事項について、Descriptionに「現象」を追記しました。 ご確認ください。

comment:10 Changed 11 years ago by ebihara

Keywords: 差し戻し added; 確認中 removed

既に拡張子なしで登録できてしまった画像に関しても、正常に表示できるようにしたいです。

comment:11 Changed 11 years ago by ebihara

Keywords: 確認中 added; 差し戻し removed

以下のリビジョンで、既に拡張子なしで登録されている画像が No Image 画像として表示されてしまうのを修正しました。

comment:12 Changed 11 years ago by ogawa

Keywords: 差し戻し added; 確認中 removed
  • OpenPNE_Img::set_requests() では、/[\.\w]/ でファイル名をチェックしているので、これに沿った実装にした方がよいのではないでしょうか
  • Description を修正してください

comment:13 Changed 11 years ago by ebihara

Description: modified (diff)
Keywords: 確認中 added; 差し戻し removed

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

comment:14 Changed 11 years ago by ebihara

Description: modified (diff)

comment:15 Changed 11 years ago by ebihara

Description: modified (diff)

comment:16 Changed 11 years ago by ebihara

Summary: 拡張子無しの画像が登録できてしまう+SNS上でNoImageになってしまう拡張子無しの画像をアップロードするとSNS上でNo Image画像として表示されてしまう

comment:17 Changed 11 years ago by ogawa

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

comment:18 Changed 11 years ago by kiwa

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

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

comment:19 Changed 10 years ago by kudo

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