问题标签 [strict-transport-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
402 浏览

ssl - Is there anyway I can use Strict-Transport security

Is there any way to use a Strict-Transport security header on a site but still have non-ssl sub-domains?

0 投票
1 回答
237 浏览

security - 启用 HSTS 后是否可以从非安全连接重定向到安全连接?

我最近开始在我的一个网站上提供“strict-transport-security”标头。我没有预料到的一个问题是我的 SSL 证书仅涵盖 mydomain.com,因此如果用户访问 www.mydomain.com,而不是被重定向(就像以前发生的那样),他们会看到浏览器出现安全错误由于新标头不允许所有非 https 通信。

由于各种原因,我正在使用多域证书,因此不能简单地购买添加了“www”的新证书。

我理解为什么这是预期的行为,但是我想知道是否无论如何我都可以将 www 重定向到非 www,尽管 www 在 www 域上没有有效证书?

如果有什么不同,我的服务器正在运行 Ubuntu。

0 投票
4 回答
6156 浏览

javascript - Cookie 在 JavaScript(和开发工具)中不可访问,但与 XHR 请求一起发送(不使用 httponly)

我在具有基于会话的授权的不同域上同时使用前端和后端应用程序。我已经设置了一个有效的 CORS 配置,它可以按预期工作localhost(例如从端口:9000到端口:8080)。一旦我在安全域上部署应用程序(两个域都只允许 HTTPS),CSRF cookie 就无法再在 JavaScript 中访问,导致前端的后续请求不正确(缺少 CSRF 标头)。

cookie 由后端在Set-Cookie标头中设置,而不使用HttpOnly标志。它实际上是在浏览器的某个地方设置的,因为后续请求中同时包含会话 cookie 和 CSRF cookie。尝试通过 JavaScript 访问它(例如document.cookie在控制台中使用)会返回一个空字符串。Chrome 的 DevTools 不会在前端域上显示任何cookie(甚至没有列出后端域)。

我期望 cookie 被设置并在当前域(前端域)上可见。我正在使用axios库的withCredentials标志。

您知道为什么无法从 JavaScript 或 Chrome 中的 DevTools 访问 cookie 吗?这和Strict-Transport-Security标题有关系吗?


标头

1. 初始 GET 响应头

2.后续POST请求头

此请求应包含一个 CSRF 标头,如果 cookie 可通过 JavaScript 访问,则会自动添加该标头。

0 投票
1 回答
1998 浏览

http-headers - 响应 Swisscom CloudFoundry 应用程序的两次标头“Strict-Transport-Security”

将 Swisscom CloudFoundry 解决方案与 Spring Boot 应用程序一起使用时,Strict-Transport-Security会向 HTTPS 响应添加两个标头。我调查了这个问题,发现 CloudFoundry 解决方案添加了几个标头。默认情况下,Spring BootStrict-Transport-Security也已经添加了标头(在安全站点上),这会导致两个不同的 HSTS 标头。

我想在我的应用程序中配置我的应用程序的标头。有没有办法禁用 Swisscom CloudFoundry 解决方案的自动标头添加?

如果没有,有没有办法告诉 Swisscom Cloud 覆盖现有的Strict-Transport-Security标头而不是将其附加到标头列表中?

来自 Spring Boot 应用程序的 HTTP 响应,部署了 Swisscom Cloud,然后包含以下两个标头:

0 投票
2 回答
1541 浏览

security - 我应该为哪些 Content-Types 设置与安全相关的 HTTP 响应标头?

我已经构建了一个 Web 应用程序(使用我最喜欢的语言Fantom!),并且正在通过提供行业标准的 HTTP 响应标头来锁定它免受 XSS 和其他此类攻击。

我的问题是,应该为哪些响应设置标题?

我可以为每个响应设置标题,但这似乎很浪费,因为大多数请求都是针对图像、字体、样式表等的。Content-Security-Policy尤其是标题可能会变得很长。

由于很多标题都与拥有的 HTML 页面(以及其中包含的 Javascript)有关,我觉得它们中的大多数只需要为 HTML 页面设置。

我查看了各种资源,例如:

虽然他们解释了标题的作用,但他们没有解释应该为哪些资源使用和服务!

我在下面列出了 HTTP 响应标头,Content-Types我认为它们应该被提供。但是有谁知道这是否正确?

(当我说text/html我还包括时application/xhtml+xml。)

Referrer-Policy由于 CSS 能够加载字体和图像,因此属于所有内容类型。

0 投票
1 回答
428 浏览

security - 如果我通过 HTTP 预加载带有不必要 HSTS 标头的 HSTS,会发生什么?

我网站上的 HTTP 页面发送一个 HSTS 标头。这对 HTTP 没有影响,应该被删除。但是,如果我决定不删除错误并通过 HSTS 预加载表单预加载我的网站怎么办?怎么了?

0 投票
1 回答
401 浏览

scala - 如何使用 scala 代码在 Play framework 2.3.x 中启用 HSTS?

我有一个在 Sbt 上运行的 Play Framework 2.3.6 版本应用程序,使用带有 scala 编码的 Sbt SSL 端点......

我想在标题中看到(hsts)严格的传输安全响应。

我正在使用 URL http://localhost:9000 在邮递员本地尝试

如何编写代码?

最好的方法是什么?玩 2.3

我在play blog中搜索并了解到2.6及更高版本支持重定向过滤器,但我仅使用2.3.x版本。

是否提供了任何最佳解决方案来使用 HTTP 在 postman 中进行本地测试。这样我就可以在响应中看到 hsts 标头。

注意:我在生产模式下阻止了 HTTP。我只能在生产中使用 https。

0 投票
1 回答
2740 浏览

jetty - 如何为 jetty 9.2.25 设置严格的传输安全标头

我正在尝试为我的码头服务器 9.2.25 添加严格的传输安全标头

我试图将规则添加到我的 jetty-config.xml,但它似乎不起作用。

为了检查它是否正常工作,我尝试查看 curl 输出,它没有显示 Strict-Transport-Security 信息。实际上,它应该在 curl 输出中显示以下行。

严格的传输安全性:max-age=31536000;包括子域

root@ip:~#curl -k --head https://ip:443

HTTP/1.1 200 正常

X-Frame-选项:拒绝

内容类型:text/html;charset=UTF-8

设置 Cookie:JSESSIONID=157bfeip315gbmb796uh2yq4m;路径=/;安全

过期:1970 年 1 月 1 日星期四 00:00:00 GMT

Pragma:无缓存

缓存控制:无存储

内容长度:8246

服务器:码头(9.2.25.v20180606)

请让我知道此配置中是否需要任何更改/配置码头 Web 服务器以添加 HSTS 标头的任何其他方式。

谢谢你的帮助。

0 投票
1 回答
325 浏览

google-chrome - 如何针对 HSTS 标头检查 wesbites 列表?

我需要检查网站列表以检查它们是否支持 HSTS 政策。

我抓住了他们的回复标题。但是,我现在很困惑,因为看起来 HSTS 策略订阅可以通过预加载的列表来完成,而不仅仅是标题(我可能错了,但我不明白这一点)。

检查网站响应标头(即查找Strict-Transport-Security标头)是否可以正确回答以下问题:网站是否支持 HSTS 政策?

因为有一个预加载列表。我不确定:网站可以在不发送 HSTS 标头的情况下订阅列表吗?即网站可以在不发送Strict-Transport-Security标头的情况下支持 HSTS 策略吗?

我在这里查看了 Chrome 的 HSTS 预加载列表订阅页面。它说:

如果您的站点致力于 HTTPS 并且您希望预加载 HSTS,我们建议执行以下步骤:[...] 将 Strict-Transport-Security 标头添加到所有 HTTPS 响应并逐步提高 max-age,使用以下标头值:[...]

谁能给我澄清一下。首先,suggestChrome 的页面中的词不清楚。这是必须的吗?还是可选的?第二,如果是必须的,那么,如果要订阅列表的网站无论如何都需要发送HSTS标头,为什么要订阅列表?这个列表是否只是为了提供一种保护第一个连接的方法(不能使用 HSTS 标头方法保护)?或者它是双重检查的意思或类似的东西?请向我澄清。

底线问题:我检查标题是否足以说明给定网站是否支持 HSTS 政策,而无需根据 Chrome 预加载列表检查网站?

如果需要根据 Chrome 的 HSTS 预加载列表检查网站,请指点我如何自动执行此操作(我无法手动执行此操作,因为我的网站列表不是一个或两个)。此外,如何根据过去(几个月前)的特定日期列表检查网站。

0 投票
1 回答
2301 浏览

java - Spring Strict Transport Security (HSTS) 配置不起作用

我正在尝试在我的 Spring Boot 应用程序中启用 HSTS。我已将以下内容添加到我的 WebSecurityConfig 中(基于Enable HTTP Strict Transport Security (HSTS) with spring boot application):

在 HTTPS 请求中,我确实得到了strict-transport-security标头,但 max-age 始终是0

如果我不添加 Spring 配置,我会得到完全相同的标题,所以看起来我的配置没有被拾取。它似乎特定于 HSTS 配置,因为其他配置(例如http.authorizeRequests())正在工作。这似乎表明 HSTS 配置以某种方式被覆盖,尤其是考虑到Spring 的默认max-age 为一年时。但是,我已经能够在我们的代码库中找到任何其他与 HSTS 相关的配置。

我还尝试设置断点o.springframework.s.c.a.w.c.HeadersConfigurer.HstsConfig#maxAgeInSeconds以检查它是否被多次调用。我的电话configure是唯一的调用。

有谁知道为什么不使用我的 HSTS 配置?或者您对如何调试有任何其他想法?