我正在使用CodeIgniter来构建管理系统。但是我在安全性方面遇到了问题。
让我举个例子:用户成功登录并被重定向到管理系统的主页。现在用户在他的浏览器中按下"返回"按钮。他现在被发送回登录页面。他现在按下"下一步"按钮并发送回管理系统的主页。
我不希望用户在登录后进入登录页面后能够发送回管理系统的主页。我怎样才能做到这一点。
提前致谢,
马克
编辑:
感谢您的所有想法,但对我不起作用。我的意思是,当有人登录时,他会被重定向到系统的主页。然后,他单击浏览器顶部网址栏左侧的"后退"按钮。
首先通过检查会话来检查用户是否已登录。
如果用户已登录,请使用 php 重定向,例如header (“Location: $URL”);
其中$URL是您的主页。
只需在登录页面上使用会话:
if(isset($_SESSION['admin_loggedin'])){
header("location: admin_index.php");
exit();
}
尝试清除登录页面上的缓存 如何使用php清除浏览器缓存? ,检查用户是否获得授权,如果$authorized==true,则重定向他。
您可以通过检查会话或cookie来检查授权,否则...
如果 PHP
存在于缓存中,它将返回到登录页面,并且实际上不会从服务器重新加载,因此我们需要强制 PHP 在登录页面检查时从服务器加载它。所以你可以使用,
header("Cache-Control: no-cache, must-revalidate");
if(isset($_SESSION['user']))
{
//Write your redirect code
}
else
{
//Redirect to login page
}
在您所在的页面中检查登录是否存在。这样 PHP 每次都会从服务器重新加载,而不会从缓存加载。如果会话存在,您将被退回到相应的页面