[英]Does “request.referer == nil” always mean direct traffic?
当request.referer
没有返回任何内容时,这是否始终意味着访问者没有通过链接执行请求 - 即她以某种方式手动输入所请求页面的地址?
或者还有其他情况, request.referer
返回nil
(授予请求成功)?
简答:不。
一般来说,引用者 - 与所有其他HTTP头一样 - 是用户提交的数据。 用户提交的数据不应该受信任。
在我的脑海中,我可以想到这些场景,如果用户没有手动输入URL,就不会设置引荐来源。
可能还有其他情况(fx我不确定浏览器在新窗口中打开链接时如何处理引用)。
然后是设置引荐来源但没有用户输入地址的情况; 特别是机器人 - 特别是推荐人 - 垃圾邮件。
我还没有证实,但它总是安全不检查nil
为空值,但使用blank?
request.referrer.blank?
这确保了它是零或空白字符串的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.