2023-08-03 19:12:22 +00:00
|
|
|
|
# 特殊的HTTP头部
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
<details>
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
|
|
|
|
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
|
|
|
|
* 获取[**官方PEASS和HackTricks的衣物**](https://peass.creator-spring.com)
|
|
|
|
|
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我在**推特**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
|
|
|
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 字典和工具
|
2021-09-19 15:52:48 +00:00
|
|
|
|
|
|
|
|
|
* [https://github.com/danielmiessler/SecLists/tree/master/Miscellaneous/web/http-request-headers](https://github.com/danielmiessler/SecLists/tree/master/Miscellaneous/web/http-request-headers)
|
2023-03-27 09:33:17 +00:00
|
|
|
|
* [https://github.com/rfc-st/humble](https://github.com/rfc-st/humble)
|
2021-09-19 15:52:48 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 更改位置的头部
|
2021-09-19 15:19:00 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
重写**IP源**:
|
2021-09-19 15:19:00 +00:00
|
|
|
|
|
2022-04-05 22:24:52 +00:00
|
|
|
|
* `X-Originating-IP: 127.0.0.1`
|
2021-09-19 15:52:48 +00:00
|
|
|
|
* `X-Forwarded-For: 127.0.0.1`
|
2022-04-19 22:38:50 +00:00
|
|
|
|
* `X-Forwarded: 127.0.0.1`
|
2021-09-19 15:52:48 +00:00
|
|
|
|
* `Forwarded-For: 127.0.0.1`
|
2021-09-27 10:58:30 +00:00
|
|
|
|
* `X-Forwarded-Host: 127.0.0.1`
|
2022-04-05 22:24:52 +00:00
|
|
|
|
* `X-Remote-IP: 127.0.0.1`
|
2021-09-19 15:19:00 +00:00
|
|
|
|
* `X-Remote-Addr: 127.0.0.1`
|
|
|
|
|
* `X-ProxyUser-Ip: 127.0.0.1`
|
|
|
|
|
* `X-Original-URL: 127.0.0.1`
|
2021-09-19 15:52:48 +00:00
|
|
|
|
* `Client-IP: 127.0.0.1`
|
2021-09-27 10:58:30 +00:00
|
|
|
|
* `X-Client-IP: 127.0.0.1`
|
|
|
|
|
* `X-Host: 127.0.0.1`
|
2021-09-19 15:52:48 +00:00
|
|
|
|
* `True-Client-IP: 127.0.0.1`
|
|
|
|
|
* `Cluster-Client-IP: 127.0.0.1`
|
|
|
|
|
* `X-ProxyUser-Ip: 127.0.0.1`
|
2021-09-20 13:06:32 +00:00
|
|
|
|
* `Via: 1.0 fred, 1.1 127.0.0.1`
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* `Connection: close, X-Forwarded-For` (检查逐跳头部)
|
2021-09-19 15:19:00 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
重写**位置**:
|
2021-09-19 15:19:00 +00:00
|
|
|
|
|
|
|
|
|
* `X-Original-URL: /admin/console`
|
|
|
|
|
* `X-Rewrite-URL: /admin/console`
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 逐跳头部
|
2021-09-19 15:19:00 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
逐跳头部是设计为由当前处理请求的代理服务器处理和消耗的头部,而不是端到端头部。
|
2021-09-19 15:19:00 +00:00
|
|
|
|
|
|
|
|
|
* `Connection: close, X-Forwarded-For`
|
|
|
|
|
|
2021-10-18 11:21:18 +00:00
|
|
|
|
{% content-ref url="../../pentesting-web/abusing-hop-by-hop-headers.md" %}
|
|
|
|
|
[abusing-hop-by-hop-headers.md](../../pentesting-web/abusing-hop-by-hop-headers.md)
|
|
|
|
|
{% endcontent-ref %}
|
2021-09-19 15:19:00 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## HTTP请求走私
|
2021-09-19 15:19:00 +00:00
|
|
|
|
|
|
|
|
|
* `Content-Length: 30`
|
|
|
|
|
* `Transfer-Encoding: chunked`
|
|
|
|
|
|
2021-11-05 20:59:42 +00:00
|
|
|
|
{% content-ref url="../../pentesting-web/http-request-smuggling/" %}
|
|
|
|
|
[http-request-smuggling](../../pentesting-web/http-request-smuggling/)
|
2021-10-18 11:21:18 +00:00
|
|
|
|
{% endcontent-ref %}
|
2021-09-19 15:19:00 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 缓存头部
|
2021-09-19 15:52:48 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
**服务器缓存头部**:
|
2021-09-20 13:06:32 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* 响应中的**`X-Cache`**可能具有值**`miss`**,表示请求未被缓存,值**`hit`**表示已被缓存
|
|
|
|
|
* **`Cache-Control`**指示资源是否被缓存以及下次资源将被再次缓存的时间:`Cache-Control: public, max-age=1800`
|
|
|
|
|
* **`Vary`**通常在响应中使用,**指示其他头部**被视为**缓存键的一部分**,即使它们通常不是键控的。
|
|
|
|
|
* **`Age`**定义了对象在代理缓存中的时间(以秒为单位)。
|
|
|
|
|
* **`Server-Timing: cdn-cache; desc=HIT`**还表示资源已被缓存
|
2021-09-19 15:52:48 +00:00
|
|
|
|
|
2021-10-18 11:21:18 +00:00
|
|
|
|
{% content-ref url="../../pentesting-web/cache-deception.md" %}
|
|
|
|
|
[cache-deception.md](../../pentesting-web/cache-deception.md)
|
|
|
|
|
{% endcontent-ref %}
|
2021-09-19 15:52:48 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
**本地缓存头部**:
|
2021-09-20 13:06:32 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* `Clear-Site-Data`:指示应该删除的缓存:`Clear-Site-Data: "cache", "cookies"`
|
|
|
|
|
* `Expires`:包含响应应该过期的日期/时间:`Expires: Wed, 21 Oct 2015 07:28:00 GMT`
|
|
|
|
|
* `Pragma: no-cache`与`Cache-Control: no-cache`相同
|
|
|
|
|
* `Warning`:**`Warning`**通用HTTP头部包含有关消息状态可能存在的问题的信息。一个响应中可能会出现多个`Warning`头部。`Warning: 110 anderson/1.3.37 "Response is stale"`
|
|
|
|
|
## 条件语句
|
2021-09-20 13:06:32 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* 使用这些头部的请求:**`If-Modified-Since`** 和 **`If-Unmodified-Since`**,只有当响应头部的 **`Last-Modified`** 包含不同的时间时,才会返回数据。
|
|
|
|
|
* 使用 **`If-Match`** 和 **`If-None-Match`** 的条件请求使用 Etag 值,因此只有当数据(Etag)发生变化时,Web 服务器才会发送响应的内容。`Etag` 是从 HTTP 响应中获取的。
|
|
|
|
|
* **Etag** 值通常是基于响应内容进行计算的。例如,`ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI"` 表示 `Etag` 是响应内容的 **37 字节** 的 **Sha1** 值。
|
2021-09-19 15:19:00 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 范围请求
|
2021-09-19 19:55:40 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* **`Accept-Ranges`**:指示服务器是否支持范围请求,以及范围可以用哪种单位表示。`Accept-Ranges: <range-unit>`
|
|
|
|
|
* **`Range`**:指示服务器应该返回文档的哪个部分。
|
|
|
|
|
* **`If-Range`**:创建一个条件范围请求,只有当给定的 Etag 或日期与远程资源匹配时才会满足。用于防止从不兼容版本的资源下载两个范围。
|
|
|
|
|
* **`Content-Range`**:指示部分消息在完整消息体中的位置。
|
2021-09-19 19:55:40 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 消息体信息
|
2021-09-19 19:55:40 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* **`Content-Length`**:资源的大小,以十进制字节数表示。
|
|
|
|
|
* **`Content-Type`**:指示资源的媒体类型。
|
|
|
|
|
* **`Content-Encoding`**:用于指定压缩算法。
|
|
|
|
|
* **`Content-Language`**:描述面向受众的人类语言,以便允许用户根据自己的首选语言进行区分。
|
|
|
|
|
* **`Content-Location`**:指示返回数据的备用位置。
|
2021-09-19 19:55:40 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
从渗透测试的角度来看,这些信息通常是“无用的”,但如果资源受到 401 或 403 的保护,并且您可以找到某种方法来获取这些信息,那么这可能是有趣的。\
|
|
|
|
|
例如,使用 HEAD 请求中的 **`Range`** 和 **`Etag`** 的组合可以通过 HEAD 请求泄漏页面的内容:
|
2021-09-19 19:55:40 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* 使用头部 `Range: bytes=20-20` 的请求,并且响应包含 `ETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y"`,则泄漏了字节 20 的 SHA1 值为 `ETag: eoGvPlkaxxP4HqHv6T3PNhV9g3Y`
|
2021-09-19 19:55:40 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 服务器信息
|
2021-09-20 13:06:32 +00:00
|
|
|
|
|
|
|
|
|
* `Server: Apache/2.4.1 (Unix)`
|
|
|
|
|
* `X-Powered-By: PHP/5.3.3`
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 控制
|
2021-09-20 13:06:32 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* **`Allow`**:列出资源支持的方法集。`Allow: GET, POST, HEAD`
|
|
|
|
|
* **`Expect`**:**`Expect`** HTTP 请求头部指示服务器需要满足的期望,以正确处理请求。
|
|
|
|
|
* 目前除了 `Expect: 100-continue` 之外,没有指定其他期望。通知接收者客户端即将发送一个(可能很大的)消息体,并希望接收到 [`100`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/100)(Continue)的中间响应。
|
2021-09-20 13:06:32 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 下载
|
2021-09-20 13:06:32 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* **`Content-Disposition`**:在常规的 HTTP 响应中,**`Content-Disposition`** 响应头部是一个指示内容是否预期在浏览器中以 _inline_ 的方式显示,即作为网页的一部分或整个网页,或者作为 _attachment_ 下载并本地保存的头部。
|
|
|
|
|
* `Content-Disposition: attachment; filename="filename.jpg"`
|
2021-09-20 13:06:32 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 安全头部
|
2021-10-19 22:23:59 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### 内容安全策略(CSP)<a href="#csp" id="csp"></a>
|
2021-10-19 22:23:59 +00:00
|
|
|
|
|
2022-04-19 22:38:50 +00:00
|
|
|
|
{% content-ref url="../../pentesting-web/content-security-policy-csp-bypass/" %}
|
|
|
|
|
[content-security-policy-csp-bypass](../../pentesting-web/content-security-policy-csp-bypass/)
|
2021-10-19 22:23:59 +00:00
|
|
|
|
{% endcontent-ref %}
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### 受信任类型(Trusted Types)<a href="#tt" id="tt"></a>
|
2021-10-19 22:23:59 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
受信任类型提供了编写、安全审查和维护无 DOM XSS 的应用程序的工具。它们可以通过 [CSP](https://web.dev/security-headers/#csp) 启用,并通过限制危险的 Web API 仅接受特殊对象(受信任类型)来使 JavaScript 代码默认安全。
|
2021-10-19 22:23:59 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
要创建这些对象,您可以定义安全策略,在其中可以确保在将数据写入 DOM 之前始终应用安全规则(如转义或清理)。这些策略是代码中唯一可能引入 DOM XSS 的地方。
|
2021-10-19 22:23:59 +00:00
|
|
|
|
```http
|
|
|
|
|
Content-Security-Policy: require-trusted-types-for 'script'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```javascript
|
2021-10-19 22:49:43 +00:00
|
|
|
|
// Feature detection
|
|
|
|
|
if (window.trustedTypes && trustedTypes.createPolicy) {
|
2023-08-03 19:12:22 +00:00
|
|
|
|
// Name and create a policy
|
|
|
|
|
const policy = trustedTypes.createPolicy('escapePolicy', {
|
|
|
|
|
createHTML: str => {
|
|
|
|
|
return str.replace(/\</g, '<').replace(/>/g, '>');
|
|
|
|
|
}
|
|
|
|
|
});
|
2021-10-19 22:49:43 +00:00
|
|
|
|
}
|
2021-10-19 22:23:59 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```javascript
|
2021-10-19 22:49:43 +00:00
|
|
|
|
// Assignment of raw strings is blocked by Trusted Types.
|
|
|
|
|
el.innerHTML = 'some string'; // This throws an exception.
|
|
|
|
|
|
|
|
|
|
// Assignment of Trusted Types is accepted safely.
|
|
|
|
|
const escaped = policy.createHTML('<img src=x onerror=alert(1)>');
|
|
|
|
|
el.innerHTML = escaped; // '<img src=x onerror=alert(1)>'
|
|
|
|
|
```
|
2022-06-27 16:53:32 +00:00
|
|
|
|
### X-Content-Type-Options <a href="#xcto" id="xcto"></a>
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
当恶意的HTML文档从您的域名中提供服务时(例如,如果上传到照片服务的图像包含有效的HTML标记),某些浏览器将将其视为活动文档,并允许其在应用程序的上下文中执行脚本,从而导致[跨站脚本漏洞](https://www.google.com/about/appsecurity/learning/xss/)。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
`X-Content-Type-Options: nosniff` 通过指示浏览器对给定响应的`Content-Type`头中设置的[MIME类型](https://mimesniff.spec.whatwg.org/#introduction)是正确的,从而防止此问题。建议在**所有资源**中使用此头。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
```http
|
|
|
|
|
X-Content-Type-Options: nosniff
|
|
|
|
|
```
|
2022-06-27 16:53:32 +00:00
|
|
|
|
### X-Frame-Options <a href="#xfo" id="xfo"></a>
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
如果恶意网站可以将您的网站嵌入到iframe中,这可能允许攻击者通过[点击劫持](https://portswigger.net/web-security/clickjacking)来引发用户的意外操作。此外,在某些情况下,[Spectre类型的攻击](https://en.wikipedia.org/wiki/Spectre\_\(security\_vulnerability\))给恶意网站提供了了解嵌入文档内容的机会。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
`X-Frame-Options`指示浏览器是否允许在`<frame>`、`<iframe>`、`<embed>`或`<object>`中呈现页面。**建议所有文档**发送此头部,以指示它们是否允许被其他文档嵌入。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
如果您需要更精细的控制,例如只允许特定来源嵌入文档,请使用[CSP](https://web.dev/security-headers/#csp) [`frame-ancestors`](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors)指令。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
```http
|
|
|
|
|
X-Frame-Options: DENY
|
|
|
|
|
```
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### 跨源资源策略 (CORP) <a href="#corp" id="corp"></a>
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
攻击者可以通过利用基于Web的[跨站泄漏](https://xsleaks.dev)来嵌入来自另一个源的资源,例如来自您的网站的资源,以了解有关它们的信息。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
`Cross-Origin-Resource-Policy` 通过指示可以加载它的网站集合来减轻此风险。该标头可以采用以下三个值之一:`same-origin`、`same-site` 和 `cross-origin`。建议**所有资源**发送此标头,以指示它们是否允许其他网站加载。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
```
|
|
|
|
|
Cross-Origin-Resource-Policy: same-origin
|
|
|
|
|
```
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### 跨源资源策略(CORB)<a href="#corp" id="corp"></a>
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
它有助于减轻侧信道攻击(包括Spectre)的威胁。它旨在防止浏览器将**可能包含敏感信息且对现有网络功能不必要的跨源网络响应**传递给网页。\
|
|
|
|
|
同样,它还有助于减轻跨站脚本包含(XSSI)漏洞。\
|
|
|
|
|
例如,它将阻止从\<script>或\<img>标签请求的跨源text/html响应,并将其替换为空响应。这是[站点隔离](https://www.chromium.org/Home/chromium-security/site-isolation)中包含的保护措施的重要部分。
|
2022-06-27 16:53:32 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### 跨源打开策略(COOP)<a href="#coop" id="coop"></a>
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
攻击者的网站可以通过利用基于Web的[跨站泄漏](https://xsleaks.dev)来在弹出窗口中打开另一个站点以获取有关其的信息。在某些情况下,这也可能导致基于[Spectre](https://en.wikipedia.org/wiki/Spectre\_\(security\_vulnerability\))的侧信道攻击。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
`Cross-Origin-Opener-Policy`头部提供了一种方式,使文档能够与通过`window.open()`或没有`rel="noopener"`的带有`target="_blank"`的链接打开的跨源窗口隔离。因此,文档的任何跨源打开者都无法引用它并且无法与其交互。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
```http
|
|
|
|
|
Cross-Origin-Opener-Policy: same-origin-allow-popups
|
|
|
|
|
```
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### 跨源资源共享(CORS)<a href="#cors" id="cors"></a>
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
与本文中的其他内容不同,跨源资源共享(CORS)不是一个头部,而是一种浏览器机制,用于请求和允许访问跨源资源。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
默认情况下,浏览器通过[同源策略](https://web.dev/same-origin-policy/)来防止网页访问跨源资源。例如,当加载跨源图像时,即使在网页上可视化显示,页面上的JavaScript也无法访问图像的数据。资源提供者可以通过CORS选择性地放宽限制,允许其他网站读取资源。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
```http
|
|
|
|
|
Access-Control-Allow-Origin: https://example.com
|
|
|
|
|
Access-Control-Allow-Credentials: true
|
2021-10-19 22:23:59 +00:00
|
|
|
|
```
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### 跨域嵌入策略(COEP)<a href="#coep" id="coep"></a>
|
2021-10-19 22:23:59 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
为了减少[Spectre攻击](https://en.wikipedia.org/wiki/Spectre\_\(security\_vulnerability\))窃取跨域资源的能力,默认情况下禁用了`SharedArrayBuffer`或`performance.measureUserAgentSpecificMemory()`等功能。
|
2021-10-19 22:23:59 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
`Cross-Origin-Embedder-Policy: require-corp`阻止文档和工作线程加载跨域资源,如图像、脚本、样式表、iframe等,除非这些资源通过[CORS](https://web.dev/security-headers/#cors)或[CORP](https://web.dev/security-headers/#corp)头部明确选择加载。COEP可以与`Cross-Origin-Opener-Policy`结合使用,将文档选择为[跨域隔离](https://web.dev/cross-origin-isolation-guide/)。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
当您希望为文档启用[跨域隔离](https://web.dev/coop-coep/)时,请使用`Cross-Origin-Embedder-Policy: require-corp`。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
```http
|
|
|
|
|
Cross-Origin-Embedder-Policy: require-corp
|
|
|
|
|
```
|
2023-08-03 19:12:22 +00:00
|
|
|
|
### HTTP严格传输安全(HSTS)<a href="#hsts" id="hsts"></a>
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
通过普通的HTTP连接进行通信是未加密的,使得传输的数据可以被网络级别的窃听者访问。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
`Strict-Transport-Security`头部告知浏览器不应该使用HTTP加载网站,而应该使用HTTPS。一旦设置了该头部,浏览器将在头部定义的时间段内,无需重定向,直接使用HTTPS访问该域名。
|
2021-10-19 22:49:43 +00:00
|
|
|
|
```http
|
|
|
|
|
Strict-Transport-Security: max-age=3153600
|
|
|
|
|
```
|
2023-08-03 19:12:22 +00:00
|
|
|
|
## 资源
|
2021-09-19 19:55:40 +00:00
|
|
|
|
|
|
|
|
|
* [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)
|
2021-10-19 22:49:43 +00:00
|
|
|
|
* [https://web.dev/security-headers/](https://web.dev/security-headers/)
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
<details>
|
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks 云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
2023-08-03 19:12:22 +00:00
|
|
|
|
* 你在一家**网络安全公司**工作吗?想要在 HackTricks 中**宣传你的公司**吗?或者想要**获取最新版本的 PEASS 或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
|
|
|
|
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
|
|
|
|
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
|
|
|
|
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
|
|
|
|
* **通过向**[**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享你的黑客技巧。**
|
2022-04-28 16:01:33 +00:00
|
|
|
|
|
|
|
|
|
</details>
|