【问题标题】:how to check if user comes from facebook browser with PHP/Laravel如何使用 PHP/Laravel 检查用户是否来自 facebook 浏览器
【发布时间】:2018-01-12 11:13:56
【问题描述】:

我正在尝试检查用户是否来自应用内 Facebook 浏览器,因为如果是 Facebook 浏览器,我网站上的某些功能将无法正常工作。

我找到了一些 JS sn-ps,但我想用 PHP 来检查它,因为我还用 PHP 过滤了一些其他东西,并且不想为此使用 JS。

我使用的是 Laravel 5.4 框架,但普通的 PHP 解决方案也很好。

我用 Facebook 浏览器和 firefox/chrome 浏览器检查了我的 HTTP_USER_AGENT 并发现了一些不同。

firefox 还给了我这个:

Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0

和脸书这个:

Mozilla/5.0 (Linux; Android 6.0; HUAWEI VNS-L31 Build/HUAWEIVNS-L31; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/56.0.2924.87 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/116.0.0.17.69;] <<-- Important

我注意到最后:[FB_IAB/FB4A;FBAV/116.0.0.17.69;]

所以我写了这段代码:

        if (
            strpos($_SERVER["HTTP_USER_AGENT"], "FB_IAB") !== false ||
            strpos($_SERVER["HTTP_USER_AGENT"], "FB4A") !== false ||
            strpos($_SERVER["HTTP_USER_AGENT"], "FBAV") !== false
        ) 
        {
            return "its fb";
        }
        else {
            return "its not fb";
        }

是的,它对我有用。但我不知道它是否适用于这样的其他用户。我也没有使用 http_header - 信息。那么你认为我对这段代码安全吗,还是我需要改变一些东西?

感谢您的帮助,对不起我的英语不好!

【问题讨论】:

  • 这就是 JS 解决方案 - 我想用 PHP 来做 :)
  • 引用:您可以在用户代理中检查 FBAN / FBAV。
  • 我检查 FBAV 但不检查 FBAN - 我还将添加 FBAN 作为 4. 条件:)
  • 我也会改用if(in_array(['FBAN', 'FBAV','FB_IAB','FB4A']) return "its fb" 。 :)

标签: php facebook laravel


【解决方案1】:

我使用https://github.com/hisorange/browser-detect 检查Facebook APP浏览器

use hisorange\BrowserDetect\Parser as Browser;

$userAgent = Browser::getUserAgentString();
$isFB = stripos($userAgent, 'FBAV') > 0;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 2012-03-01
    相关资源
    最近更新 更多