在登录或返回链接URL后确保返回上一页的最佳做法

use*_*499 6 php security

登录后我找到了很多重定向到上一页的方法和示例:

  1. $_GET - 需要验证
  2. $_SESSION - 如果使用多个选项卡,将覆盖该值
  3. $_SERVER['HTTP_REFERER'] - 它由浏览器发送到服务器

在表格上我们可以使用

<form action="/process/?return=/previous/page/?id=123" method="post" />
Run Code Online (Sandbox Code Playgroud)

或使用隐藏的输入.

<input type="hidden" name="return" value="$_GET or $_SESSION or $_SERVER" />
Run Code Online (Sandbox Code Playgroud)

我可以知道确保返回值的最佳做法是什么?

Alf*_*doy 5

最常见的做法(也在付款结帐的电子商务网站上)是有一个隐藏的输入,其URL重定向到:

<input type="hidden" name="return" value="<?php echo($_SERVER['REQUEST_URI']); ?>" />
Run Code Online (Sandbox Code Playgroud)

它对大多数人来说似乎足够安全......