java - 部署时覆盖 Java Spring Strict-Transport-Security
问题描述
我是 Java Spring 安全的新手。我已经能够成功添加一些 HTTP 标头并通过下面的代码部署它们。
基本 HTTP 标头工作后,我还为 Strict-Transport-Security 添加了标头。它似乎在本地工作,但是一旦部署,该值就会被覆盖。
我已经与我们的一些架构师进行了交谈,他们不相信在这个 Java 应用程序和浏览器之间存在任何可能覆盖/替换值的东西。他们认为这可能是 Spring 中与我在这里的代码发生冲突的东西。
好奇是否有人有这方面的经验并可以提供一些建议。
我已经包含了一些 Chrome 向我显示标题的屏幕截图。
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
response.setHeader("Content-Security-Policy",
"default-src https: http: 'unsafe-inline' 'unsafe-eval'; " +
"script-src 'self' 'unsafe-inline' 'unsafe-eval'; " +
"object-src 'none'; " +
"base-uri 'self'; " +
"frame-ancestors 'self'; " +
"form-action https: http: 'self'; "
);
response.setHeader("Strict-Transport-Security",
"max-age=0; " +
"Cache-Control: no-cache, no-store, must-revalidate, private; " +
"Pragma: no-cache; " +
"Expires: 0; " +
"includeSubDomains"
);
response.setHeader("Upgrade-Insecure-Requests", "1");
response.setHeader("X-Frame-Options", "DENY");
response.setHeader("X-XSS-Protection", "1; mode=block");
response.setHeader("Referrer-Policy", "no-referrer-when-downgrade");
super.postHandle(request, response, handler, modelAndView);
}
}```
[![local deployed changes][1]][1]
[![server deployed changes][2]][2]
[1]: https://i.stack.imgur.com/3LGEd.png
[2]: https://i.stack.imgur.com/8NAMn.png
解决方案
推荐阅读
- python - 文档 AI:google.api_core.exceptions.InvalidArgument:400 请求包含无效参数
- docker - Docker - 如何在我的容器化应用程序启动之前执行数据库 SQL 命令或外部非 docker 应用程序脚本?
- google-apps-script - 如何在 Google 工作表引用数据中保留超链接
- javascript - 如何更改对象数组中所有出现的对象键
- database - 将树莓派数据读取到ec2的实用方法
- mongodb - Mongo DB聚合管道中不会显示特定字段
- javascript - For 循环首先打印 if-else 语句的错误分支
- date - Excel计数空日期列
- node.js - 角度的多个服务器请愿
- java - Java - 检测使用 htmlUnit 加载的网页 ajax 组件的更改