我目前正在为一个用户开发一个简单的 CMS(这不太可能改变)。因此,我将登录详细信息存储在 .ini 文件中(实时时,将存储在根目录之外)。然后使用会话来检测正确的用户是否已登录,如果没有,则使用 Header('Location: login.php') 将它们重定向回登录页面 我很好奇这实际上有多安全?以下是我到目前为止所拥有的草稿
登录页面:
<?php
session_start();
if ($_GET) {
header("Location: login.php");
die();
}
if (isset($_SESSION['user'])) {
header('Location: admin/index.php');
}
$config = parse_ini_file("login.ini", true);
$user = htmlentities($_POST['user']);
$password = htmlentities($_POST['pass']);
if ($user == $config['login']['user'] && $password == $config['login']['password']) {
$_SESSION['user'] = $_POST['user'];
header('Location: admin/index.php');
}
?>
<form action="login.php" method="POST">
<h2>Username:</h2>
<input type="text" name="user" />
<h2>Password:</h2>
<input type="password" name="pass" />
<input type="submit" Value="Login" />
</form>
然后将检查会话管理区域中的每个页面,如果没有使用标题位置重定向到登录,如下所示:
管理员欢迎页面
<?php
session_start();
if (!isset($_SESSION['user'])) {
header('Location: ../login.php');
die();
}
注销页面会破坏会话。
我知道这很简单,不使用数据库。但是这种设计是否存在任何重大的安全缺陷,大量使用标题位置,并将敏感日期存储在 .ini 文件中。或者对于一个简单的应用程序,这是否非常适合/没有过时?