我试图只允许某些网站/域链接我的图像。我正在使用 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();
}
}
目前它仅适用于本地主机或托管应用程序的任何内容。
最佳答案
您想要检查引荐来源网址:Request::server('HTTP_REFERER')
。
$request->getHttpHost()
返回您的应用程序正在其上运行的主机名,正如您已经注意到的那样。
也许可以选择X-Forwarded-For标题也考虑在内。
关于php - 如何获取链接您的图像的网站的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57681993/