2018-11-25 14:12:38 1379次浏览 3条回答 0 悬赏 10 金钱

请问 Yii 2.0 怎么控制只允许 谷歌 搜狗 浏览器访问,其他浏览器一律禁止访问。
请问怎么写?

  • 回答于 2018-11-26 09:08 举报
    if(chrome){
    exit;
    }
    
    1 条回复
    回复于 2018-11-26 16:35 回复

    麻烦你说清楚一点好嘛

  • 回答于 2018-11-26 09:37 举报

    根据UserAgent判断浏览器

    2 条回复
    回复于 2018-11-26 16:34 回复

    具体怎么写?UserAgent 的数量 好像都一样的

    回复于 2018-11-26 16:43 回复

    UserAgent 里面会有具体访问网站的浏览器的版本,你可以用不同的浏览器测试一下,通过 strpos函数简单判断一下

  • 回答于 2023-03-06 18:24 举报

    要实现只允许特定的浏览器访问Yii 2.0应用程序,可以通过以下步骤进行设置:

    在Yii 2.0的配置文件中,打开web组件的配置部分,添加如下代码:
    `````
    'components' => [
    // ...
    'request' => [
        'class' => 'yii\web\Request',
        'enableCsrfValidation' => true,
        'parsers' => [
            'application/json' => 'yii\web\JsonParser',
        ],
        'cookieValidationKey' => 'your-secret-key',
        'trustedHosts' => [
            // add trusted hosts here
            '192.168.1.100',
            'www.example.com',
        ],
        'headers' => [
            'User-Agent' => [
                'value' => function($request) {
                    return $request->headers->get('User-Agent');
                },
                'allowed' => ['Chrome', 'Sogou', 'Googlebot'],
                'denyCallback' => function ($request, $response) {
                    $response->setStatusCode(403);
                    return 'Your browser is not allowed to access this website.';
                },
            ],
        ],
    ],
    // ...
    

    ],

    `````
    
    
        在配置中的'headers'部分,添加一个名为'User-Agent'的HTTP头信息,并设置它的值为当前请求的浏览器标识。
    
    在'allowed'选项中,指定允许访问的浏览器列表,可以设置多个浏览器名称。
    
    在'denyCallback'选项中,指定访问被拒绝时的响应处理方法,可以返回一个错误信息或者一个视图。
    
    保存配置文件,重新加载Yii应用程序,此时只有Chrome、Sogou和Googlebot浏览器可以访问该应用程序。
    

    需要注意的是,'User-Agent'是HTTP请求头的一部分,表示当前请求的浏览器标识,但它不是一项强制性的规范,因此不同的浏览器可能会使用不同的名称和格式来设置它。在实际使用中,可能需要根据实际情况来调整允许访问的浏览器列表。同时,这种方式只是一种基于浏览器标识的简单过滤方式,不能保证100%防止恶意访问,还需要结合其他安全措施来提高应用程序的安全性。

您需要登录后才可以回答。登录 | 立即注册
少年侠气
见习主管

少年侠气

注册时间:2018-10-20
最后登录:2019-08-30
在线时长:6小时20分
  • 粉丝0
  • 金钱210
  • 威望20
  • 积分470

热门问题