プロジェクト

全般

プロフィール

Backport(バックポート) #3673

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

isao sanoほぼ10年前に追加. 9年以上前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2014-07-15
期日:
進捗率:

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() を施す


関連するチケット

コピー元 OpenPNE 3 - Bug(バグ) #3220: opSecurityUser::login() で生成される member/setSid アクションへリダイレクトするために渡される個々のパラメータがURLエンコードされていない Won't fix(対応せず) 2012-10-01

関係しているリビジョン

リビジョン fb567c96 (差分)
kaoru n9年以上前に追加

(refs #3673, BP from #3220)fixed to parameter is not encoded.

リビジョン 51684fc4 (差分)
kaoru n9年以上前に追加

(refs #3673, BP from #3220) modified to use the rawurlencode.

履歴

#1 isao sanoほぼ10年前に更新

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

#2 誠二 天重9年以上前に更新

  • ステータスNew(新規) から Pending Review(レビュー待ち) に変更
  • 担当者誠二 天重 にセット
  • 進捗率0 から 50 に変更

#3 Shinichi Urabe9年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

レビューOK

#4 Shinichi Urabe9年以上前に更新

  • ステータスPending Testing(テスト待ち) から Rejected(差し戻し) に変更
  • 進捗率70 から 50 に変更

https://redmine.openpne.jp/issues/3220#note-7 と同様の理由で差し戻します

#5 誠二 天重9年以上前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

https://github.com/openpne/OpenPNE3/pull/170
バグチケットでの修正をプルリクに取り込みました。

#6 Shinichi Urabe9年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

レビューOK

#7 誠二 天重9年以上前に更新

  • ステータスPending Testing(テスト待ち) から Pending Merge(マージ待ち) に変更
  • 進捗率70 から 80 に変更

テスト実施しました。問題ありません。

#8 Shinichi Urabe9年以上前に更新

  • ステータスPending Merge(マージ待ち) から Fixed(完了) に変更
  • 進捗率80 から 100 に変更

マージ済み

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