出于安全考虑,我只需要向用户显示一个页面,如果他们来自特定网站,而不是直接访问者。
我目前设置的方式,将生成一个随机的12个字符的字符串并附加到网址。例如:
http://www.example.com?skey=a72bzy321bgf
skey参数始终是随机的,但始终有12个字符。所以基本上,如果我的URL有一个带有12个随机字符的& key =参数,页面就会正确显示。如果没有,访客会去其他地方。
有关如何将此代码编入页面的任何帮助,或者Google应该如何找到必要的说明?我已经看了一遍,还没有找到如何继续这个,也不知道到底要找什么。所以任何帮助都将不胜感激。
谢谢!
答案 0 :(得分:1)
您可以获取网址密钥,然后检查您的功能,因为它在启动网页时有效
$key = trim($_GET['key']);
if(!isValidKey($key)){
//die('Invalid Key'); //or
header("Location: wrongkey.html");
exit;
}
答案 1 :(得分:1)
请求值skey
并找到值的长度。如果长度不等于12,则使用die()来阻止用户查看页面。在目标页面中使用如下。( http://www.example.com/index.php?skey=a72bzy321bgf
)
<?php
if(!isset($_REQUEST['skey']) || strlen($_REQUEST['skey']) != 12){
die("Soory,You came to this page in a Wrong Way.");
}
?>
//Your Code will goes here.
答案 2 :(得分:1)
您需要检查是否$_GET['skey']
isset()
,以及string length是否为12个字符。
if (isset ($_GET['skey']) && strlen($_GET['skey']) == 12) {
// Get in
}
else {
// Go away
}
这当然不是检查用户来自何处的正确方法,因为您的引用网址需要以某种方式将skey
设置为网址的一部分。
您可以检查一下$_SERVER['HTTP_REFERER']
isset()
吗?
答案 3 :(得分:1)
谢谢大家!
根据你的所有建议,我结合了一些事情,到目前为止,这对我来说非常合适:
<?php
if(!isset($_REQUEST['skey']) || strlen($_REQUEST['skey']) != 12){
header("Location: http://example.org/not-allowed.php");
exit;
}
?>
谢谢!希望我能回复你的所有回复。希望这有助于其他人。