php - 您如何获得链接您的图片的网站的网址?
问题描述
我试图只允许某些网站/域链接我的图像。我正在使用 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 或应用程序所在的任何东西。
解决方案
您要检查引用者:Request::server('HTTP_REFERER')
。
$request->getHttpHost()
返回您的应用程序正在运行的主机名,正如您已经注意到的那样。
也许也要考虑X-Forwarded-For标头。
推荐阅读
- javascript - 当我有交互式透视图时,如何使我的图像笔直?
- reactjs - 如何使用反应代码在引导 iframe 中使用响应式页面
- jquery - 使用 get 方法将数据从 ajax 发送到服务器
- c++ - C++:如何让 std::istream 从键盘获取输入
- docker - 如何运行和访问在 Docker 容器中运行的 Web 服务器
- python - 附加字符串并添加到数据框列发生“ufunc'add'没有包含签名匹配类型的循环”-错误
- python - 如何在shell中更改diff的二进制文件?
- wordpress - Google Drive API 每天 10 亿次查询限制
- ruby-on-rails - Rails 动态创建模型并使用它
- javascript - JavaScript - 在类方法中动态设置类属性