2009-08-20 72 views
1

当某人在我的网站上注册或登录时,它们会发送到“thanks.php”。对未登录的用户确保“谢谢”页面

页面检查是否已经登录,如果是,告诉你你可以做什么,如果没有,给你一个链接到register.php页面。

但是,任何人都可以制作自己的cookie并欺骗这样的脚本。

我该如何保护自己?

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

但我不太确定,有没有人对这种“感谢”页面有一些建议或经验?

回答

5

如果不访问服务器,则无法生成任何会话数据或数据库数据。所以,一个安全的方法来做到这一点将要么设置一个SESSION cookie,与一些变量,并检查。

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


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

那届没有理由id变量必须是唯一的饼干的照顾。正如你所说,SESSION中的任何东西都在服务器上 – Eli 2009-08-20 16:53:47

+0

Ooops ..我们走了。 – 2009-08-20 16:55:07

2

嗯,是的,当人们登录,您不应该设定一个cookie,说loggedin=true或一些这样的。

而应该设置$_SESSION['loggedin'] = TRUE PHP一般需要保证的是管理自动

+0

事实上,当您关闭浏览器时会话cookie过期。甚至不必关闭计算机,只需浏览器即可。在php.ini文件中搜索这个变量:session.cookie_lifetime。它的含义解释了它上面的一行。 – KdgDev 2009-08-20 17:00:01

+0

是的,默认情况下会话数据只能持续一段会话:) – Eli 2009-08-20 17:40:01

相关问题