操作
Backport(バックポート) #3684
完了opSecurityUser::login() で生成される member/setSid アクションへリダイレクトするために渡される個々のパラメータがURLエンコードされていない
開始日:
2012-10-01
期日:
進捗率:
100%
予定工数:
説明
現象¶
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() を施す
誠二 天重 さんが約10年前に更新
- コピー元 Bug(バグ) #3220: opSecurityUser::login() で生成される member/setSid アクションへリダイレクトするために渡される個々のパラメータがURLエンコードされていない を追加
Shinichi Urabe さんが約10年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
Shinichi Urabe さんが約10年前に更新
- ステータス を Pending Merge(マージ待ち) から Fixed(完了) に変更
- 進捗率 を 80 から 100 に変更
操作