Wal*_*ker 6 javascript php jquery redirect codeigniter
当用户尝试通过链接访问我们的网站时(例如访问www.website.com/privatepage),他们会被重定向到登录页面.登录后,我们希望将它们重定向到预期的网址 - 您是如何做到这一点的?
此外,我们还有一个用例,用户从主页登录,或者直接进入没有预期URL的登录页面 - 在这种情况下,我们想将它们重定向到默认页面.
任何人都可以帮我解决这个问题吗?
在您的登录页面中:
如果你去www.example.com/private_page
使用CodeIgniter(在私人页面上)
// if user is not logged in...
$_SESSION['redirect'] = $this->uri->segment(1);
redirect('login');
Run Code Online (Sandbox Code Playgroud)
在登录页面上
// successfully logged in..
if (isset($_SESSION['redirect'])) {
redirect($_SESSION['redirect']);
} else {
// redirect to default page
}
Run Code Online (Sandbox Code Playgroud)
小智 5
以这种方式重定向时,拥有接受网址的白名单可能是一个好主意 - 否则,攻击者可能会向某人发送一个像example.com/login?attacker.com/fake_examplecom这样的链接,用户将被重定向到攻击者的网站虽然他们认为他们刚刚登录到您的网站.原始网址指向您的网站,因此它看起来值得信赖.正如您可以想象的那样,有很多令人讨厌的事情可以做到这一点.
他们如何重定向到登录页面?无论使用哪种方法,您都可以在登录页面 URL 末尾附加 GET 变量,然后在登录页面上引用该变量。
因此,用户想要访问www.example.com/privatepage,但您需要他们首先登录www.example.com/login。将它们重定向到www.example.com/login?targetpage=/privatepage,然后在登录页面的代码中,您可以访问该targetpage变量。