プロジェクト

全般

プロフィール

Bug(バグ) #3220

完了

opSecurityUser::login() で生成される member/setSid アクションへリダイレクトするために渡される個々のパラメータがURLエンコードされていない

Shinichi Urabe さんが約12年前に追加. 7年以上前に更新.

ステータス:
Won't fix(対応せず)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2012-10-01
期日:
進捗率:

0%

予定工数:
3.6 で発生するか:
Yes (はい)
3.8 で発生するか:
Yes (はい)

説明

現象

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 - Backport(バックポート) #3673: opSecurityUser::login() で生成される member/setSid アクションへリダイレクトするために渡される個々のパラメータがURLエンコードされていないFixed(完了)誠二 天重2014-07-15

操作
コピー先 OpenPNE 3 - Backport(バックポート) #3684: opSecurityUser::login() で生成される member/setSid アクションへリダイレクトするために渡される個々のパラメータがURLエンコードされていないFixed(完了)誠二 天重2012-10-01

操作

他の形式にエクスポート: Atom PDF