问题:返回地址默认下载资源 目的:解决默认下载,需要默认返回展示内容 环境:php7.4 HDFS 今天优化项目,发现之前对资源的返回都是直接返回了HDFS 的地址,这样是很不安全的,直接把服务器路径地址暴露了。 类似:
优化方案:建立独立的资源库表,每次上传都给返回地址 http://test.cn/{uuid}/{ext}
这种方式,每次都通过uuid在去获取到HDFS对应的资源,如下
这样避免了暴露具体地址等相关信息,同时也需要对路由做限制,我这边是做了
->where('ext', 'jpg|png|gif|jpeg|svg|bmp|ico|tiff|tif|webp')
的限制
定义常量:
class CommonEnum
{
const EXT = [
'jpg' => 'image/jpeg',
'png' => 'image/png',
'gif' => 'image/gif',
'jpeg' => 'image/jpeg',
'svg' => 'image/svg+xml',
'bmp' => 'image/bmp',
'ico' => 'image/x-icon',
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'webp' => 'image/webp',
];
}
控制器伪代码:
public function getImg($code,$ext) {
$data = $this->commonService->getImg($code);
return response($data)
->header('Content-Type', CommonEnum::EXT[$ext])
->header('Content-Disposition', 'inline'); // 设置为inline以在浏览器中显示图片
}
这样就完成了,也可以通过标签来访问
本文为码上有钱原创文章,转载无需和我联系,但请注明来自码上有钱博客https://oldcai688.com
最新评论