2009-06-09 107 views
1

我在网站上有一个PHP页面,我想从该网站的其他页面访问只有重定向如果从外部网站到达链接

如果用户点击指向页面的链接,或输入页面的地址,而不是来自网站的域名,我希望页面将用户重定向到索引。

任何想法?

回答

3

你可以做的是使用会话。

使索引设置一个变量

$_SESSION['visitedIndex'] = TRUE; 

和测试它在其他网页:

if(!$_SESSION['visitedIndex']) { 
    header('location: ....'); 
} 

确保你的第一个回波之前做到这一点。

0

检查'Referer'字段?

这很容易被破解,寿。更可靠的方法是检查使用的是否没有活动会话(如果您的站点将它们分配给访问者)。

-2

使用引荐FO这样的:

if ($_SERVER['HTTP_REFERER'] != "...") { 
    header("LOCATION: othersite"); 
} 
+0

引用者太容易被操纵为可行 – 2009-06-09 15:06:52

1

您也可以使用$ hash = timestamp +内部密钥或您的特定规则创建内部服务。

首页有链接 http://www.samesite.com/page_2.php?param=hash

第二页解码的哈希和检查针对给定的时间间隔的时间戳。否则,它拒绝显示。

只有你知道内部密钥是不可能伪造的。