php - 重定向和引用

标签 php redirect http-referer

我的实际实现要复杂得多,包括身份验证和其他一些东西,但以最简单的形式,这就是我遇到的问题。使用 header 重定向不会将其自身显示为引荐来源网址。

假设我有三个页面:start.php、middle.php 和 end.php

开始.php

<html><body>
<a href="middle.php">middle</a>
</body></html>

中间.php

<?php
header('Location: end.php');
?>

结束.php

<?php
    echo 'The referer is: ' . $_SERVER['HTTP_REFERER'];
?>

当您点击该链接时,您最终会到达 end.php,但 referer 不是 middle.php。我可以使用任何其他重定向方法来更正此问题,或者我可以做的任何其他事情吗?

干杯

编辑 在这种情况下,目标页面是第三方供应商。他们必须验证的唯一方法是引用 URL。我无法控制那个。我只需要我的页面进行重定向以发送正确的 URL。除了挑出不信任 http_referer 的原因之外,还有其他方法可以替代这种重定向方法吗?

最佳答案

抱歉,这是您无法控制的,只有浏览器可以发送该 header - 并非所有浏览器都可以。它很容易被伪造,所以不要依赖它。

有关此 php bug 的更多信息(这被标记为不是错误)。

关于php - 重定向和引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4350929/

相关文章:

php - 带有 Http header 的 Zend Studio 调试 Url

python - 在 web2py Controller 中使用参数重定向 URL

python - Selenium 请求的 HTTP header 中缺少 Referer

php - 如何在 Zend Framework 中获取 HTTP_REFERER

php - 如何在php中创建的PDF文件中添加页眉和页脚

php - MySql PDO 开始事务并将其传递给对象

PHP - 用户登录后,重定向到存储在数据库中的地址

php - 使用 ck 编辑器更新后页面未重定向

regex - .htaccess 确定引荐来源网址是否不是当前域

php - 对 PHP 表单感到沮丧 - jquery mobile