首页 > 解决方案 > 您如何获得链接您的图片的网站的网址?

问题描述

我试图只允许某些网站/域链接我的图像。我正在使用 Laravel 的中间件来执行此操作。

目前我只能让它在托管 laravel 应用程序的 URL 上工作。

这是我尝试使用的代码。If 语句应该检查使用图像的 URL 是否在 AuthorisedDomains 表中。

public function handle($request, Closure $next)
    {
        $authDomains = AuthorisedDomains::pluck('domain');
//        dd($request->getHttpHost());
        if ($authDomains->contains($request->getHttpHost())) {
            $request->headers->set('X-Content-Type-Options', 'nosniff');
            return $next($request);
        } else {
            return Image::make(public_path('images/forbidden.png'))->response();
        }
    }

目前它只适用于 localhost 或应用程序所在的任何东西。

标签: phpmysqllaravelhttppython-requests

解决方案


您要检查引用者:Request::server('HTTP_REFERER')

$request->getHttpHost()返回您的应用程序正在运行的主机名,正如您已经注意到的那样。

也许也要考虑X-Forwarded-For标头。


推荐阅读