0

我目前正在为一个用户开发一个简单的 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 文件中。或者对于一个简单的应用程序,这是否非常适合/没有过时?

4

0 回答 0