WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

ログイン後にトップページではなく、元のページへ戻れるようにもする #1298

@shhirose

Description

@shhirose

ref #831#1174 からの派生

ログインした際に、以下の条件で遷移先が決まるが、これにログインページへ遷移した元のページへ戻れるようにもする。

現在の仕様

  1. <input type="hidden" name="_target_path" value="{遷移先}" />formタグに含まれる場合は、その URL に遷移する
  2. ログインページが表示された際の URL (ブラウザのURL)がurl('mypage_login')ではない場合は、その URL に遷移する
  3. Firewall 設定にdefault_target_pathが設定されている場合は、その URL に遷移する
  4. トップページに遷移する

※この他にも Firewall の設定でいろいろできるようだが省略

実装要件

  • ログイン後に元のページ(ログイン画面へ遷移した元のページ)へリダイレクトする
  • セキュリティを考慮する

セキュリティについては以下のとおり

@Yangsin
ただし、単純にリファラーを適用してそこへ遷移するとなると
別のサイトにログイン画面のリンクを貼られた場合、ログインを経由して別サイト画面に戻ってしまい、フィッシングなどの危険がありそうですので、リファラーのチェックや正規化を行うような処理が必要ではないかと思っています。

実装案

リファラーを使用する。
ただし、別サイトへ戻ってしまうようになるとフィッシングなどの危険があるため、ドメイン名、ポート番号、app.config.rootなどを使用して正しい遷移先かチェックする。正しくない場合はログインページへ戻る。

※現実的に実装できそうかも検討する余地がある

懸念事項

ref #961 の場合のようにリクエスト時の URL と Webサーバ到達時の URL に差異がある場合にどうするか。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions