首页 > 其他分享 >spring boot 文件下载最好设置nosniff

spring boot 文件下载最好设置nosniff

时间:2024-01-20 18:45:53浏览次数:17  
标签:spring boot filename headers nosniff HttpHeaders

实际上就是添加X-Content-Type-Options nosniff 规避浏览器嗅探,规避一些问题

参考代码

以下是一个部分参考代码

@GetMapping("/{filename:.+}")
    public ResponseEntity<Resource> downloadFile(@PathVariable String filename) throws IOException {
        Resource resource = fileService.loadFileAsResource(filename);
        HttpHeaders headers = new HttpHeaders();
        headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"");
        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
        headers.add(HttpHeaders.X_CONTENT_TYPE_OPTIONS, "nosniff");
        return ResponseEntity.ok()
                .headers(headers)
                .body(resource);
}

说明

当然不只是spring boot 其他下载的都可以参考

参考资料

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
https://stackoverflow.com/questions/18337630/what-is-x-content-type-options-nosniff

标签:spring,boot,filename,headers,nosniff,HttpHeaders
From: https://www.cnblogs.com/rongfengliang/p/17976942

相关文章

  • SpringSecurity-记得我
    原理在用户发送认证请求之后,或调用我们之前说过的usernamePasswordAuthenticationFilter这个过滤器,认证成功之后会调用一个RemeberMeService服务;负责针对每一用户生成一个Token,然后将token写入到浏览器的Cookie里面,同时会使用:TokenRepository将这个token写入数据库中。将Toke......
  • 死磕Spring之IoC篇 - 解析自定义标签(XML 文件)
    解析自定义标签(XML文件)上一篇《BeanDefinition的解析阶段(XML文件)》文章分析了Spring处理 org.w3c.dom.Document 对象(XMLDocument)的过程,会解析里面的元素。默认命名空间(为空或者 http://www.springframework.org/schema/beans)的元素,例如 <bean/> 标签会被解析成Generic......
  • 深度理解 Spring 动态数据源切换是如何实现的
    更新(不是必读,只为了帮助读者更好的理解执行过程)2022-11-16结合事务TransactionInterceptor的执行,剖析数据源是如何切换的详细分析为什么,切面要设置@Order(-9999)属性针对点一回答如下在SpringBoot项目启动的时候,会去扫描所有配置类,生成一个个的Bean,被@Transaction标记的......
  • Spring IOC 容器加载过程详解
    在Spring框架中,IOC(InversionofControl)容器是核心的概念之一。IOC容器负责管理和装配各个组件,本文将详细介绍SpringIOC容器的加载过程,包括如何配置、初始化和装配Bean。1.什么是IOC容器IOC容器是Spring框架的一个关键组件,负责管理Java对象的生命周期、配置信息以及对象之间的......
  • SpringBoot项目通过注解快速解决,字典翻译,响应数据加密,数据脱敏等问题
    简介在几乎所有SpringBoot项目中都会面临字典翻译,接口数据加密,数据脱敏的问题。在每个接口中单独的解决会非常繁琐,因此接下来介绍一下怎么通过注解快速解决这些问题。实现步骤1.引入maven坐标<dependency><groupId>io.gitee.gltqe</groupId><artifactId>......
  • Spring AOP原来是这样实现的
    SpringAOP技术实现原理在Spring框架中,AOP(面向切面编程)是通过代理模式和反射机制来实现的。本文将详细介绍SpringAOP的技术实现原理,包括JDK动态代理和CGLIB代理的使用,并通过实例演示其在实际项目中的应用。1.AOP的实现原理概述SpringAOP的实现基于代理模式,通过代理对象来包......
  • Java21 + SpringBoot3集成WebSocket
    目录前言相关技术简介什么是WebSocketWebSocket的原理WebSocket与HTTP协议的关系WebSocket优点WebSocket应用场景实现方式添加maven依赖添加WebSocket配置类,定义ServerEndpointExporterBean定义WebSocketEndpoint前端创建WebSocket对象总结前言近日心血来潮想做一个开源项目,目......
  • spring--Bean的生命周期
    Springbean的生命周期涉及多个阶段,从创建到销毁。下面是一个简化的生命周期描述:Bean定义:首先,Spring根据配置(XML、注解或Java配置)创建一个bean的定义。Bean实例化:Spring容器使用构造器或工厂方法实例化bean。属性填充:Spring容器通过反射机制,将所有......
  • spring--是如何解决单例模式下循环依赖问题的
    Spring解决单例bean的循环依赖主要依赖于容器的三级缓存机制,以及bean的提前暴露。这里是它如何工作的:三级缓存:一级缓存(singletonObjects):存储已经经过完整生命周期处理的单例bean,包括初始化和依赖注入等。二级缓存(earlySingletonObjects):存储早期的单例对象的引用,这些......
  • spring--@Autowired @Qualifier @Resource @Value 四者的区别
    @Autowired,@Qualifier,@Resource,和@Value是Spring框架中用于依赖注入的注解,它们各有特点和用途:@Autowired:@Autowired注解用于自动装配Spring容器中的bean。它默认按类型(byType)进行依赖注入。当存在多个同类型的bean时,它可以和@Qualifier注解一起使用,以指定注入......