Bug(バグ) #3220
完了
opSecurityUser::login() で生成される member/setSid アクションへリダイレクトするために渡される個々のパラメータがURLエンコードされていない
Shinichi Urabe さんが約12年前に追加.
7年以上前に更新.
説明
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() を施す
関連するチケット
2 (0件未完了 — 2件完了)
- 対象バージョン を OpenPNE 3.9.0-old にセット
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を kaoru n にセット
- 3.8 で発生するか を Unknown (未調査) から Yes (はい) に変更
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 担当者 を削除 (
kaoru n)
- 進捗率 を 0 から 50 に変更
- コピー先 Backport(バックポート) #3673: opSecurityUser::login() で生成される member/setSid アクションへリダイレクトするために渡される個々のパラメータがURLエンコードされていない を追加
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
- ステータス を Pending Testing(テスト待ち) から Rejected(差し戻し) に変更
- 担当者 を kaoru n にセット
- 進捗率 を 70 から 50 に変更
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
- コピー先 Backport(バックポート) #3684: opSecurityUser::login() で生成される member/setSid アクションへリダイレクトするために渡される個々のパラメータがURLエンコードされていない を追加
- ステータス を Pending Testing(テスト待ち) から Won't fix(対応せず) に変更
- 進捗率 を 70 から 0 に変更
OpenPNE 3.8.13 にて対応済みであったため、対応せずとします。
他の形式にエクスポート: Atom
PDF