Php 仅为自己的网站启用http_referer反向链接
我使用PHP http_referer为我的网站创建了一个反向链接。它基本上可以工作,但我想启用它,只有当引用是一个与我的域页面。我曾想过比较引用页面和当前页面中的字符串,但我没有发现它是如何工作的 这是我的代码:Php 仅为自己的网站启用http_referer反向链接,php,hyperlink,back,http-referer,Php,Hyperlink,Back,Http Referer,我使用PHP http_referer为我的网站创建了一个反向链接。它基本上可以工作,但我想启用它,只有当引用是一个与我的域页面。我曾想过比较引用页面和当前页面中的字符串,但我没有发现它是如何工作的 这是我的代码: <?php // Back link to previous page. // If current page has been called by a hyperlink. if(isset($_SERVER['HTTP_REFERER']) &am
<?php // Back link to previous page.
// If current page has been called by a hyperlink.
if(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] !='') echo '<a href="'.$_SERVER['HTTP_REFERER'].'">« Go back.</a>';
// If current page has NOT been called by a hyperlink.
else return;
?>
你能告诉我应该使用哪种PHP函数吗?你可以从
$\u服务器['HTTP\u REFERER']
解析url并获取主机名并与自己的进行比较。因此,您需要的功能是:
if(!empty($\u服务器['HTTP\u REFERER']))
{
如果(解析url($服务器['HTTP\U引用器',PHP\U url\U主机)==$服务器['HTTP\U主机])
{
回声';
}
}
另外,由于用户可以设置$\u服务器['HTTP\u REFERER']
,因此最好停止任何XSS
PHP处理的一个更安全的想法是,如果他们从您的域中输入,只需使用一些javascript来代替链接将他们发送回
echo'代码>谢谢你,劳伦斯!你的回答很有帮助。我以前试过解析url,但现在我知道我用了错误的方法。
if(!empty($_SERVER['HTTP_REFERER']))
{
if(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST) == $_SERVER['HTTP_HOST'])
{
echo '<a href="'.htmlentities($_SERVER['HTTP_REFERER']).'">« Go back.</a>';
}
}