如何拒绝Laravel 7中来自其他域的请求?

时间:2020-09-06 17:44:45

标签: laravel-7

我不得不在Kernel.php文件中注释以下行,以避免Laravel发送access-control-allow-origin标头:

 //\Fruitcake\Cors\HandleCors::class,

这似乎完成了API调用,浏览器在其中显示has been blocked by CORS policy消息。

但是,我已经在指向我的测试环境的随机页面中测试了以下代码,并且javascript文件已正确导入:

var script = document.createElement('script')
        script.setAttribute('src', 'http://gdpr.test/js/seifti_cookie_bot')
        script.setAttribute('type', 'application/javascript')
        document.head.appendChild(script)

/js/seifti_cookie_bot是web.php路由文件中任何中间件组之外的路由。

我的解决方法 我已经用下面的代码创建了一个中间件并将其应用于我想保护的那些路由,就我所测试的而言,它的工作是可行的,但是我不知道这是否是最好的方法?

    if(!isset($_SERVER['HTTP_REFERER']))
       return abort('403');

    $url = parse_url($_SERVER['HTTP_REFERER']);
    if($_SERVER['HTTP_HOST'] !== $url['host'])   
        return abort('403');

    return $next($request);

0 个答案:

没有答案