【问题标题】:Does "request.referer == nil" always mean direct traffic?“request.referer == nil”是否总是意味着直接流量?
【发布时间】:2014-01-04 09:55:06
【问题描述】:

request.referer 没有返回任何内容时,这是否总是意味着访问者没有通过链接进行请求 - 即她以某种方式手动输入了请求页面的地址?

或者还有其他情况request.referer返回nil(假设请求成功)?

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-4 httprequest http-referer


【解决方案1】:

简短回答:不。

一般来说,引荐来源网址 - 与所有其他 HTTP 标头一样 - 是用户提交的数据。不应信任用户提交的数据。

我突然想到了这些场景,如果没有用户手动输入 URL,就不会设置引荐来源网址。

可能还有其他情况(我不确定浏览器在新窗口中打开链接时如何处理引荐来源网址)。

还有设置了referrer,但没有用户输入地址的情况;尤其是机器人 - 尤其是引荐垃圾邮件。

【讨论】:

    【解决方案2】:

    我尚未验证,但不检查 nil 的空白值而是使用 blank? 总是安全的

    request.referrer.blank?
    

    这确保它是 nil 或空白字符串时的大小写。

    【讨论】:

      猜你喜欢
      • 2018-11-13
      • 1970-01-01
      • 2018-06-14
      • 2021-10-01
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多