laravel 上传后的文件如何符合安全标准

news/2024/10/19 2:14:44/

WEB应用为了满足“安全标准” - 上传文件的保存

Laravel 静态文件过滤中间件

<?phpnamespace App\Http\Middleware;use Closure;class StaticResourceInterceptor
{/*** Handle an incoming request.** @param  \Illuminate\Http\Request  $request* @param  \Closure  $next* @return mixed*/public function handle($request, Closure $next){// 获取请求的路径$path = $request->getPathInfo();// 检查请求是否是静态资源if ($this->isStaticResource($path)) {// 如果是静态资源,返回自定义的响应,或根据需要执行其他操作if(file_exists(storage_path("app".$path))){// 支持响应的静态文件类型$support = ['png'=>'image/png','jpg'=>'image/jpeg','gif'=>'image/gif','pdf'=>'application/pdf','docx'=>'application/msword',];$ext = pathinfo($path, PATHINFO_EXTENSION);if(isset($support[$ext])){$headers = ['Content-Type'=> $support[$ext]];return response()->file(storage_path("app".$path), $headers);}}return response()->json(['error' => '拒绝访问静态资源', 'path'=>$path], 403);}// 继续处理请求return $next($request);}/*** 检查是否是静态资源** @param  string  $path* @return bool*/protected function isStaticResource($path){// 在这里添加检查静态资源的逻辑,可以使用正则表达式或其他方式// 例如,检查路径是否以.css、.js、.jpg等静态资源扩展名结尾$pattern = '/\.(css|js|jpg|jpeg|png|gif|ico|pdf)$/i';return preg_match($pattern, $path);}
}

http://www.ppmy.cn/news/836821.html

相关文章

flask-apscheduler实现定时任务

秋风阁-北溪入江流 flask-apscheduler是一个支持apscheduler的flask插件&#xff0c;通过flask-apscheduler可以很方便的定义定时任务。 安装flask-apscheduler pip install flask-apschedulerflask-apscheduler组件 apscheduler库包含有组件&#xff1a; triggers&#xf…

打开百度网站过程涉及哪些协议

打开百度网站过程涉及哪些协议 打开百度网站涉及以下协议&#xff1a; HTTP&#xff1a;当你在浏览器中输入百度的网址时&#xff0c;浏览器会发送HTTP请求到百度的服务器&#xff0c;请求获取网页内容。HTTP协议定义了客户端和服务器之间的通信规则和格式。DNS&#xff1a;在…

HTML 5 会让iOS和Android开发者转行吗?

我们第一次谈论 HTML5 要改变世界大概是因为乔布斯&#xff0c;他坚持在 iOS 上不兼容 Flash&#xff0c;在 Adobe 统治多媒体开发的那个年代&#xff0c;这需要付出极大的勇气。这么多年过去了&#xff0c;虽然所有人都在谈论 HTML5&#xff0c;但是大部分人甚至都忘了它还是一…

HTML5会让iOS和安卓开发者转行吗?

HTML5中国 2015-11-25 17:33 我们第一次谈论HTML5要改变世界大概是因为乔布斯&#xff0c;他坚持在iOS上不兼容Flash&#xff0c;在Adobe统治多媒体开发的那个年代&#xff0c;这需要付出极大的勇气。这么多年过去了&#xff0c;虽然所有人都在谈论HTML5&#xff0c;但是大部…

HTML 5 定稿

我们第一次谈论 HTML5 要改变世界大概是因为乔布斯&#xff0c;他坚持在 iOS 上不兼容 Flash&#xff0c;在 Adobe 统治多媒体开发的那个年代&#xff0c;这需要付出极大的勇气。这么多年过去了&#xff0c;虽然所有人都在谈论 HTML5&#xff0c;但是大部分人甚至都忘了它还是一…

HTML5发展史

2007年W3C(万维网联盟)立项HTML5&#xff0c;直至2014年10月底&#xff0c;这个长达八年的规范终于正式封稿。 过去这些年&#xff0c;HTML5颠覆了PC互联网的格局&#xff0c;优化了移动互联网的体验&#xff0c;接下来&#xff0c;HTML5将颠覆原生App世界。这听起来有点危言耸…

手机APP三年内将彻底消失,以后全靠H5了

[思路网注] 过去这些年&#xff0c;HTML5颠覆了PC互联网的格局&#xff0c;优化了移动互联网的体验&#xff0c;接下来&#xff0c;HTML5将颠覆原生App世界。这听起来有点危言耸听&#xff0c;但若认真分析HTML5的发展史&#xff0c;你会发现&#xff0c;这个世界的发展趋势确实…

HTML5定稿了,为什么原生App世界将被颠覆

摘要&#xff1a;2014年10月底&#xff0c;HTML5规范正式定稿&#xff0c;结束了长达8年的长跑。数字天堂董事长&#xff0c;DCloud CEO王安梳理了HTML5诞生至今的演变过程&#xff0c;并从开发者和用户两个角度分析了HTML对两个人群的优势。 2007年W3C&#xff08;万维网联盟&…