我有一个页面,我通过检查是否设置了某个会话变量来限制访问。但话说回来,用户可以清除该会话变量,现在可以访问该页面。
我该怎么做才能防止这种情况发生?我正在使用php
答案 0 :(得分:6)
...您为 允许访问该网页的人设置会话变量,而不是相反?
答案 1 :(得分:4)
拒绝所有,允许一些。
假设不允许没有会话的人。
答案 2 :(得分:3)
通常用户不能自己清除变量(除非你的代码为它们做了)但只删除了自己的会话cookie,这会破坏整个会话(现在你可以限制访问)。
答案 3 :(得分:0)
在您要限制访问的各个页面的 TOP 的PHP标题中,您可以输入以下内容:
<?php
session_start(); // start the session
if (!isset($_SESSION['allowaccess']) || ($_SESSION['allowaccess'] == FALSE)) {
// if the access token is not present or the token is false, then...
echo "Access denied."
exit();
}
?>
<h1>Super Seekrit Data</h1>
<p>yada yada yada</p>
这样,如果用户清除他们的cookie或注销或其他什么,具有此类代码的页面现在将拒绝访问。当然,他们可能仍然有一个缓存副本存在,并且可以看到内容,直到缓存过期,但这是另一个需要解决的问题。