php - HTTP Referer 并不总是被传递

标签 php referer

我有一个记录用户访问的应用程序。这些访问都不是直接访问的,100% 这些访问都是从其他网站引用的。

我正在将 $_SERVER['HTTP_REFERER'] 传递到数据库。大约 35% 的记录主菜通过引用者,其余为空白。

这有什么原因吗?

最佳答案

HTTP_REFERER 可能为空的原因有多种。

  1. 你必须明白它是浏览器给出的环境变量。这意味着用户可以删除它,甚至可以更改它,如果他们愿意的话。
  2. 通过书签、历史记录或手动输入链接访问链接的用户没有引用来源。
  3. 众所周知,IE 会在与 javascript 相关的情况下删除引用站点。例如 window.openwindow.location 甚至在 anchor 或元刷新中设置target="_blank" .
  4. 点击聊天应用程序、PDF/Word/Excel 文档中的嵌入链接也不会设置引荐来源网址。
  5. 在其他语言中使用 AJAX、file_get_contentsfopen 和其他类似函数可能不会设置引用请求。
  6. cURL、fsockopen、具有类似浏览器组件的应用程序可能不会设置引荐来源网址。

可能有更多情况会发生这种情况,如果我能想到任何看起来合理的事情,我会更新。

关于php - HTTP Referer 并不总是被传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5643773/

相关文章:

php - 带有 Auth 的 Yii2 CORS 不适用于非 CRUD 操作

PHP 检测页面是否使用 PHP_SELF 重新加载

perl - 在 Mojo::UserAgent 中设置 Referer header

javascript - 在这个上下文中实现的这段JS代码有什么问题吗?

php - 搜索 MySQL 数据库

php - MySQL 结果与 PHP 的数组?

php - 调整时区

php - 我可以将数组绑定(bind)到 PDO 查询中的 IN() 条件吗?

apache - 如何在重写规则上设置引用者?