【发布时间】:2017-12-11 01:39:08
【问题描述】:
我正在尝试使用角色保护一些 php 页面。当人们登录时,我正在使用它的代码,但如果他们知道链接并且不登录,他们可以访问该页面,我不明白为什么。
谁能帮帮我?
我正在使用此代码来保护只有具有“管理员”角色的用户才能访问的页面。
<?php
// Initialize the session
session_start();
// If session variable is not set it will redirect to login page
if(isset($_SESSION['username'])){if ($_SESSION['role']=='admin') {
} else {
header('location: index.php');
}
}
?>
【问题讨论】:
-
警告:编写自己的访问控制层并不容易,而且有很多机会会严重错误。当任何现代的development framework 像Laravel 带有强大的authentication system 内置时,请不要编写自己的身份验证系统。至少遵循recommended security best practices 并且永远不要将密码存储为纯文本。
-
让 ALL 使用 laravel!!那时什么都学不到。
-
是的,Laravel 通过中间件更好地管理这个,所以在你的下一个项目或当前项目中考虑这个。
-
我知道 Laravel,但我正在努力学习 :)
-
对于核心 PHP 项目,我曾经创建一个额外的子管理表,用于添加诸如 orders_access、products_access 之类的列并在其中存储 1 或 0 值,这些值由管理员设置以及 md5 密码。
标签: php password-protection user-roles