Project

General

Profile

Backport(バックポート) #2090

携帯のプロフィール画像変更画面などの画像の大サイズ表示がアクセスエラーになる

Added by Masato Nagasawa over 8 years ago. Updated about 8 years ago.

Status:
Fixed(完了)
Priority:
High(高め)
Assignee:
Target version:
Start date:
2011-01-05
Due date:
% Done:

100%


Description

Overview (現象)

http://sns.openpne.jp/diary/25849 より転記

2010年12月22日にリリースされた脆弱性対処が原因で携帯ページの画像が表示されません。
該当部分は下記ファイルで指定されている 320x320 サイズの拡大画像です。

member/templates/configImageSuccess.php
member/templates/deleteImageSuccess.php
friend/templates/showImageSuccess.php
community/templates/configImageSuccess.php
community/templates/deleteImageSuccess.php

プラグイン等はまだ検索していません。

Causes (原因)

sfImageHandlerPlugin 側で許可されていない画像サイズを指定していることが原因。
許可されている画像サイズを指定するか、320x320を許可リストに追加する必要があります。

Way to fix (修正内容)

sfImageHandlerPlugin の画像許可サイズに 320x320 を追加する修正で対応します。


Related issues

Related to OpenPNE 3 - Bug(バグ) #1861: 携帯のプロフィール画像変更画面などの画像の大サイズ表示がアクセスエラーになる Fixed(完了) 2011-01-05

Associated revisions

Revision ccdee132 (diff)
Added by Yuya Watanabe about 8 years ago

fixed added a "320x320" to the valid image size list(fixes #2090, BP from #1861)

History

#1 Updated by Shinichi Urabe over 8 years ago

  • Target version changed from OpenPNE 3.4.13 to OpenPNE 3.4.14

#2 Updated by Shinichi Urabe about 8 years ago

  • Target version changed from OpenPNE 3.4.14 to OpenPNE 3.4.15

親チケットが対応中のため修正は次期バージョンとします

#3 Updated by Yuya Watanabe about 8 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Yuya Watanabe

#4 Updated by Yuya Watanabe about 8 years ago

本チケットではバックポート元の#1861および#2103の修正を直接反映することができませんでした。
理由としては以下のものとなります。
  • OpenPNE 3.5.3を対象とする#1087における修正をもとにしたものであるため、依存関係を解決できない

以下本チケットにおける調査結果を示します。

調査結果

本チケットは携帯版での写真編集ページ(/index.php/member./configImage)における問題を扱っているので以下このページについて述べます。
写真編集ページでapps/mobile_frontend/modules/community/templates/configImageSuccess.phpのテンプレートを用いていますが、ここで以下の記述があります。

6 link_to(__('Expansion'), sf_image_path($community->getFile(), array('size' => '320x320', 'format' => 'jpg'))),

この記述の意図としては、指定した画像ファイルの大きさ320x320のものを表示するものだと思われます。
※plugins/sfImageHandlerPlugin/lib/helper/sfImageHelper.phpのsf_image_path()において'format'は用いられていませんが今回とは別問題とします。
sf_image_path()では「img/ファイルフォーマット/画像ファイルサイズ/ファイル名」という形式の文字列が返ってくるようです。今回の場合、「img/ファイルフォーマット/w320_h320/ファイル名」という形になります。

ここで生成されたURLのリンクへ行くと画像が表示されないという状態になります。
サーバ側を見てみると対象となる画像ファイルサイズのディレクトリ(img/ファイルフォーマット/w320_h320)が存在していませんでした。

また、画像を生成するクラスであるplugins/sfImageHandlerPlugin/lib/image/generator/sfImageGeneratorGD.class.phpには以下のように記述されています。ここはバックポート元の修正部分に相当する部分だと思われます。

27     $allowedSize = array('76x76', '120x120', '180x180', '240x320', '600x600'),

修正案

以上より、本チケットの修正案としては以下の3つが挙げられます。
  • バックポート元と同様に#1087相当の修正を行った後にバックポート元と同じ修正を行う
  • configImageSuccess.phpにおける表示するファイルサイズを画像許可サイズに指定されているものに変更する
  • sfImageGeneratorGDの画像許可サイズに320x320を追加する

修正実行案

本チケットにおいては#1087における修正を加味する必要はなく、バックポート元単体では3番目を採用しているため、本チケットでも
  • sfImageGeneratorGDの画像許可サイズに320x320を追加する

を採用することで解決することを考えます。

#5 Updated by wa ta about 8 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

更新履歴 ccdee1322e10cca3b3aa5490193b0361a608bb86 で適用されました。

#6 Updated by Yuma Sakata about 8 years ago

テストOKです。

#7 Updated by Minoru Takai about 8 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

レビューをしました。

この問題は note-4 で示されている通り、sfImageGenerator クラス周りのファイルが 3.4 以前と 3.6 以後で異なっているため、親チケットの修正を直接取り入れることができません。しかしながら note-4 で検討されている内容の通りで plugins/sfImageHandlerPlugin/lib/image/generator/sfImageGeneratorGD.class.php の $allowedSize を変更する修正は適切だと思います。修正内容は OK です。

余談ですが、 3.6 以降では array('48x48', '76x76', '120x120', '180x180', '240x320', '320x320', '600x600') のように 48x48 まで許可されていますが、これは #1116 の内容を扱ったために追加されています。 48x48 サイズの画像を扱う箇所がない限りは 3.4.x には 76x76 から 600x600 までの 6 種類のサイズが許可されていれば良いということです。

#8 Updated by Mutsumi Imamura about 8 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

http://redmine.openpne.jp/issues/2090#note-6 でテスト済みです。
問題ありませんので完了とします。

Also available in: Atom PDF