我正在为一般用户和管理用户构建一个具有一个身份验证系统的站点(对于任何感兴趣的人,使用CodeIgniter和Tank Auth)。它们根据配置文件凭据进行区分。 (这是一种安全的方法吗?)
我的问题是,当用户访问他们没有要查看的凭据的区域时,我应该使用哪些PHP功能来限制访问?我的想法是“重定向”或“退出”功能。什么是最安全的方法?
答案 0 :(得分:5)
同时使用:
header("Location: http://your_login_page");
exit();
exit()将确保脚本的其余部分不会被处理,header()会将用户发送到有用的位置。 (“空闲的手是魔鬼的工作室......”)
答案 1 :(得分:1)
好吧,我认为Tank Auth应该已经处理好了,不是吗? (我从未使用过那个库,Ion Auth做到了,我认为是认证系统必备的)。 通常,在普通的Php中,您可能想要做一个
header("Location: your/url");
exit();
在检查记录状态后重定向(通过$ _SESSION,$ _SESSION + cookies,for。ex。)。如果标题可能失败,则Exit()会阻止脚本继续运行,从而显示不需要的代码。
Codeingiter 有内置的重定向系统(选中here on User Manual)重定向()功能。您可以像使用它一样使用它:
if ($logged_in == FALSE)
{
redirect('/login/form/', 'refresh');
}
或使用'location'
代替'refresh'
,允许您设置标头响应以发送到服务器
// with 301 redirect
redirect('/article/13', 'location', 301);
但是我相信Tank Auth有自己的方法足以满足你的应用需求,你已经检查了吗?