我试图仅允许某些网站/域链接我的图像。我正在使用Laravel的中间件进行此操作。
目前,我只能在托管laravel应用程序的URL上使用它。
这是我尝试使用的代码。 If语句应该检查使用该图像的URL是否在AuthorizedDomains表中。
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();
}
}
目前,它仅适用于本地主机或应用托管的任何内容。
答案 0 :(得分:1)
您要检查引荐来源网址:Request::server('HTTP_REFERER')
。
$request->getHttpHost()
返回您正在运行的应用程序的主机名。
也许也考虑到X-Forwarded-For标头。