为未登录的用户保护“感谢”页面

时间:2009-08-20 16:48:39

标签: php security session login cookies

当一个人在我的网站上注册或登录时,他们会被发送到“thanks.php”。

页面检查是否已登录,如果是,则告诉您可以执行的操作,如果没有,则为您提供指向register.php页面的链接。

然而,任何人都可以制作自己的cookie并欺骗脚本。

我如何保护自己免受这种伤害?

我想到的一件事是检查数据库中是否存在$_SESSION['session_id']。据我所知,你不能自己生成,即使你可以,你需要数据库访问才能找到一个。

我不太确定,是否有人对这类“谢谢”页面有任何建议或经验?

2 个答案:

答案 0 :(得分:5)

如果没有访问服务器,则无法生成任何会话数据或数据库数据。因此,一个安全的方法是设置一个SESSION cookie,带有一些变量,并检查它。

session_start();
$_SESSION['logged_in'] = true;


session_start();
if(!isset($_SESSION['logged_in']))
{
    header("Location: youarentsupposetobehere.com");
}

答案 1 :(得分:2)

嗯,是的,当人们登录时,你不应该设置一个说loggedin=true或其他的cookie。

您应该设置$_SESSION['loggedin'] = TRUE PHP通常负责保护自动管理该会话的cookie