gpt4 book ai didi

php - 仅为自己的网站启用 http_referer 反向链接

转载 作者:搜寻专家 更新时间:2023-10-31 21:14:14 28 4
gpt4 key购买 nike

我使用 PHP http_referer 为我的网站创建了反向链接。它基本上可以工作,但我只想在引用者是我的域的页面时启用它。我考虑过比较引用页面和当前页面中的字符串,但我没有找到它如何工作。

这是我的代码:

    <?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'].'">&laquo; Go back.</a>';

// If current page has NOT been called by a hyperlink.
else return;
?>

您能告诉我应该使用哪个 PHP 函数吗?

最佳答案

您可以从 $_SERVER['HTTP_REFERER'] 解析 url并获取主机名并将其与您自己的进行比较。所以你要找的功能是parse_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']).'">&laquo; Go back.</a>';
}
}

也为 $_SERVER['HTTP_REFERER']可以由用户设置 htmlentities 来阻止任何 XSS 是个好主意。

如果他们从您的域进入,PHP 已经处理了一个更安全的想法,就是使用一些 javascript 代替链接将他们发回。

echo '<a href="Javascript:window.history.back();">&laquo; Go back.</a>';

关于php - 仅为自己的网站启用 http_referer 反向链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12631591/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com