我制作了一个锁定文件,看看人们是否登录了某些页面,我很好奇,它是否真的足够安全,可以放在live上,或者人们是否可以很容易地绕过这个锁。
下面是我目前的代码:
<?php
session_start();
if ((isset($_POST['user'])) && (isset($_POST['pass']))) {
$_SESSION['user'] = $_POST['user'];
$_SESSION['pass'] = $_POST['pass'];
}
include("config.php");
if ((isset($_SESSION['user']) && (isset($_SESSION['pass'])))) {
$sql = "SELECT count(*) FROM `users` WHERE user = :name and pass = :pass";
$result = $db->prepare($sql);
$result->bindValue(':name', $_SESSION['user']);
$result->bindValue(':pass', $_SESSION['pass']);
$result->execute();
$number_of_rows = $result->fetchColumn();
if ($number_of_rows !== 1){
echo "ERROR - USER AND PASS DO NOT MATCH";
} else { echo "SUCCESS!"; }
} else { echo "YOU NEVER LOGGED IN!"; }
?>我觉得因为它会检查数据库中的用户和密码是否匹配,所以没有任何方法可以解决这个问题,但同时我对PHP有些陌生,也不是很清楚。
发布于 2013-10-22 03:35:20
您可以将此代码添加到您的代码之上。
<?php
session_start();
if(empty($_SESSION['user']) && empty($_SESSION['pass']))
{
header("location:your_login_page.php");
exit();
}如果用户试图进入会话或注册会员区域,此代码会自动将用户重定向到登录页面。
https://stackoverflow.com/questions/19503093
复制相似问题