Php HTTP#u referer用于多个URL';s
我得到了这个“HTTP_referer-script”,它在进入网站时检查访问者是否来自某个URL(受密码保护)。我的问题是,它似乎只有在访问者来自绝对正确的URL时才起作用。即: 如果用户来自:它可以正常工作,但如果用户来自,它将无法工作 在这种情况下,是否有必要向HTTP_referer添加第二个URL?该URL是同一个域,但也包含“www”Php HTTP#u referer用于多个URL';s,php,http-referer,Php,Http Referer,我得到了这个“HTTP_referer-script”,它在进入网站时检查访问者是否来自某个URL(受密码保护)。我的问题是,它似乎只有在访问者来自绝对正确的URL时才起作用。即: 如果用户来自:它可以正常工作,但如果用户来自,它将无法工作 在这种情况下,是否有必要向HTTP_referer添加第二个URL?该URL是同一个域,但也包含“www” 满足于此 非常感谢! /a将与URL数组结合使用: if (!in_array($referrer, array('http://mydomain
满足于此
非常感谢!
/a将
与URL数组结合使用:
if (!in_array($referrer, array('http://mydomain.com/', 'http://www.mydomain.com/'))) {
die("You do not have access to this site.");
}
把两个if语句放在下面
<?php
$referrer = $_SERVER['HTTP_REFERER'];
if ($referrer != 'http://mydomain.com/') {
die("You do not have access to this site.");
}
if ($referrer != 'http://www.mydomain.com/') {
die("You do not have access to this site.");
}
// put your page code here
?>
<h1>Content here</h1>
满足于此
服务器['HTTP\u REFERER']
的内容来自客户端发送到Web服务器的请求。首先,重要的是要认识到这些信息绝对不可信。这很容易被客户伪造
话虽如此。您可能只需要检查域是否是$\u服务器['HTTP\u REFERER']
字符串的一部分。因为在这种情况下也不起作用
因此,通过您的示例,使用以下内容:
<?php
if ( strstr($_SERVER['HTTP_REFERER'], 'mydomain.com') ) {
die("You do not have access to this site.");
}
// put your page code here
?>
<h1>Content here</h1>
满足于此
这段代码只是检查“mydomain.com”是否是$\u服务器['HTTP\u REFERER']内容的一部分
请务必意识到这也意味着:因为referer也会匹配,但您不太可能遇到这种情况(这可能也不重要)为什么不在条件语句中添加第二个URL:
if($referer!='http://mydomain.com/“| |$推荐人!=”http://www.mydomain.com/')
您可能想试试|
操作符:像这样?如果($referer!=“| |$referer!=”)死亡(“你不能通过!”);似乎不起作用,现在它不会说“你不……”或“这里的内容……”。。。隐马尔可夫模型!不要在| |之前使用分号(;)。另外,在您的示例中,两个URL都是相同的,这没有任何意义。请记住,您的代码不是安全检查,因为访问者可能会伪造其推荐人。您好,谢谢您的详细回答!不幸的是,它不起作用。url是否应该是像“”这样的完整url?这可能与此页面前面使用的密码页面有关吗?是的!成功了!非常感谢!我只需将URL从index.php更改为auth.php(页面检查密码),然后一切都像一个符咒一样工作。。。谢谢
<?php
if ( strstr($_SERVER['HTTP_REFERER'], 'mydomain.com') ) {
die("You do not have access to this site.");
}
// put your page code here
?>
<h1>Content here</h1>
$allowed = array("hello.com","example2.com");
foreach ($allowed as $site) {
if(!preg_match("#$site#", $url))
die("You do not have access to this site.");
else
break;
}