【问题标题】:Could this pass as a secured lock file?这可以作为安全锁文件传递吗?
【发布时间】:2013-10-22 03:35:19
【问题描述】:

我制作了一个锁定文件来查看人们是否在某些页面上登录,我很好奇它是否真的足够安全以进行直播,或者人们是否可以轻松绕过此锁定。

这是我目前的代码:

<?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 有点陌生,并不知道。

【问题讨论】:

  • “这可以作为安全锁文件传递吗?” - 只要你使用准备好的语句/PDO,你应该没问题。这就是 PDO 的用途。

标签: php session pbo


【解决方案1】:

您可以将其添加到您的代码之上。

<?php
session_start();
if(empty($_SESSION['user']) && empty($_SESSION['pass']))
{
header("location:your_login_page.php");
exit();
}

如果用户尝试进入会话或注册会员区,此代码会自动将用户重定向到登录页面......

【讨论】:

  • 我很确定我已经在第 8 行使用 if ((isset($_SESSION['user']) &amp;&amp; (isset($_SESSION['pass'])))) 做到了这一点,这本质上不是一回事吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-14
  • 2011-03-20
  • 2020-12-09
相关资源
最近更新 更多