当前位置: 首页 > 知识库问答 >
问题:

未加载css文件,因为使用Spring security5时启用了严格的MIME检查

胡禄
2023-03-14

当内容类型选项为“nosniff”时,Spring security 5会阻止我的css文件。spring security不会阻止来自其他站点的外部css文件或struts2等框架带来的css文件,但它会阻止我创建的css文件,即使该文件是空的,如下图所示:

<代码>

请求URL:http://localhost:8080/reclamation/reclamation/js/style2.css引用策略:无引用时降级缓存控制:无缓存,无存储,max-age=0,必须重新验证内容语言:en Content-长度:1123 Content-Type:text/html;charset=utf-8日期:星期二,7月21日2020 10:45:08GMT Expires:0 Pragma:无缓存X-Content-Type-Options:无缓存X-Frame-Options:DENY X-XSS-保护:1;模式=块接受:text/css,/;q=0.1 Accept-En编码:gzip,缩小,br Accept-Language:en-US,en;q=0.9,fr;q=0.8,ar;q=0.7 Cache-Control:无缓存连接:保持活力Cookie:JSESSIONID=EA9A3D0AC31CDB51C68E0806CD5C32E1 DNT:1主机:localhost:8080Pragma:无缓存引用:http://localhost:8080/reclamation/list-complaint.action秒-站点:同源用户代理:Mozilla/5.0(Linux;Android 6.0;Nexus 5 Build/MRA58N)AppleWebKit/537.36(KHTML,如壁虎)Chrome/84.0.4147.89移动Safari /537.36

permitAll不是一个解决方案,因为它允许访问,但保留了安全过滤器

<代码>

我的配置:struts2、jdk8 tomcat 9.0.19、spring security 5.1.6。释放

共有1个答案

陶锋
2023-03-14

我找到了解决方案,我有过滤器将所有文件更改为“text/html”

public class CharacterSetFilter implements Filter {
 
public void destroy() {}

public void doFilter(
  ServletRequest request, 
  ServletResponse response, 
  FilterChain next) throws IOException, ServletException {
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html; charset=UTF-8");//this line was the problem
    response.setCharacterEncoding("UTF-8");
    next.doFilter(request, response);
}

// ...

}

 类似资料: