Bug(バグ) #3220
opSecurityUser::login() で生成される member/setSid アクションへリダイレクトするために渡される個々のパラメータがURLエンコードされていない
0%
Description
現象¶
opSecurityUser::login() 内に以下のような処理があり、パラメータをurlencode()せず、文字結合している。
この $uri の返値は、現時点では opMemberAction::login() でのみ使われており (本チケットはOpenPNE本体のみのソースを追って確認したもので、プラグインなどで別の用途でこの返値を使っている場合、このチケットの修正目的からすると影響を受けてしまう。)、ここからリダイレクト用のURLとして扱われているので、urlencode() されている必要のあるパラメータだと考えられる。
- is_remember_login のパラメータについてはintでキャストしているため問題ないと考えられる
- next_uri, sid, ts のパラメータについては、URLとして意味を持つ文字列が含まれる可能性があるため、urlencode() が必要と考えられる
$uri = '@member_setSid?next_uri='.$uri .'&is_remember_login='.(int)$this->getAuthAdapter()->getAuthForm()->getValue('is_remember_me') .'&sid='.$item[0] .'&ts='.$item[1];
原因¶
urlencode() の対応漏れだと考えられる
修正案¶
各パラメータに urlencode() を施す
Related issues
History
#1
Updated by Shinichi Urabe over 10 years ago
- Description updated (diff)
#2
Updated by Shinichi Urabe over 10 years ago
- Target version set to OpenPNE 3.9.0-old
#3
Updated by kaoru n about 10 years ago
- Status changed from New(新規) to Accepted(着手)
- Assignee set to kaoru n
- 3.8 で発生するか changed from Unknown (未調査) to Yes (はい)
#4
Updated by kaoru n about 10 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
- Assignee deleted (
kaoru n) - % Done changed from 0 to 50
https://github.com/openpne/OpenPNE3/pull/63
プルリクエストしました。
#5
Updated by isao sano over 8 years ago
- Copied to Backport(バックポート) #3673: opSecurityUser::login() で生成される member/setSid アクションへリダイレクトするために渡される個々のパラメータがURLエンコードされていない added
#6
Updated by Shinichi Urabe over 8 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
レビューOK
#7
Updated by Shinichi Urabe over 8 years ago
- Status changed from Pending Testing(テスト待ち) to Rejected(差し戻し)
- Assignee set to kaoru n
- % Done changed from 70 to 50
見落としです
urlencode() を使うべきではなく rawurlencode() を使うべきです
http://www.slideshare.net/ebihara/php-32340906
#8
Updated by kaoru n over 8 years ago
- Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)
https://github.com/openpne/OpenPNE3/pull/63
urlencode() を rawurlencode() に変更しました
#9
Updated by Shinichi Urabe over 8 years ago
- Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)
コミットメッセージについて差し戻しです
コメント部分もコミットメッセージに含まれています # Please enter the commit message for your changes. Lines starting
以下
一回目の urlencode() の修正と rawurlencode() の修正のコミットメッセージが同じです
一覧で見たときにそれぞれのリビジョンの修正の違いが分からなくなるので、違いが分かるコミットメッセージをお願いします
https://redmine.openpne.jp/projects/op3/wiki/Rule_of_Shared_Repository_%28ja%29#%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8
における 「メッセージは必ずそのコミットが何であるかの説明となるようにしてください。
」 の説明箇所を参考にしてください
#10
Updated by kaoru n over 8 years ago
- Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)
https://github.com/openpne/OpenPNE3/pull/176
プルリクエストしなおしました。
#11
Updated by Shinichi Urabe over 8 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
レビューOK
#12
Updated by 誠二 天重 over 8 years ago
- Copied to Backport(バックポート) #3684: opSecurityUser::login() で生成される member/setSid アクションへリダイレクトするために渡される個々のパラメータがURLエンコードされていない added
#14
Updated by isao sano almost 6 years ago
- Status changed from Pending Testing(テスト待ち) to Won't fix(対応せず)
- % Done changed from 70 to 0
OpenPNE 3.8.13 にて対応済みであったため、対応せずとします。