响应头配置
# 概述
通过【企业中心】-【安全配置】-【响应头配置】可对IDaaS接口中部分安全响应头的值进行个性化设置。
由于http响应头在网关层进行接口响应处理,为了防止影响性能,添加了缓存机制,响应头配置的更新并不是实时生效,生效时间最多不超过五分钟
# 前提条件
拥有IDaaS企业中心平台的管理员权限。
# 操作步骤
- 登录IDaaS企业中心平台,在上方导航栏选择 “设置 > 企业配置” ,选择左侧"安全配置"选项。 选择 “响应头配置”
# 参数说明
# X-Frame-Options
X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 <frame>、<iframe>、<embed> 或者 <object> 中展现的标记。站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免 点击劫持 攻击。
IDaaS提供 X-Frame-Options 的文本输入框。可由客户自定义填写,并作用与HTTP请求响应头中。 详细内容可参考: X-Frame-Options - HTTP (opens new window)
- X-Frame-Options: SAMEORIGIN
- DENY:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
- SAMEORIGIN:表示该页面可以在相同域名页面的 frame 中展示
- ALLOW-FROM uri:允许指定的 URI 嵌入。 这是一个被弃用的指令,不再适用于现代浏览器。 存在兼容问题。 Content-Security-Policy HTTP 首部有一个 frame-ancestors 指令,可以使用这一指令来代替
# Content-Security-Policy
HTTP 响应头 Content-Security-Policy (简称 CSP)允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点。这将帮助防止跨站脚本攻击(Cross-Site Script)。
IDaaS提供Content-Security-Policy 的文本输入框,可由客户自定义填写,并作用与HTTP请求响应头中,不做内容校验, 详细内容可参考: Content-Security-Policy (opens new window)
语法格式 Content-Security-Policy: <policy-directive>; <policy-directive>
默认值: default-src 'self' https: http:; font-src https: http: data:; img-src 'self' https: http: data:; object-src 'none'; script-src 'self' https: http: 'unsafe-inline' 'unsafe-eval'; style-src https: http: 'unsafe-inline'; frame-ancestors 'self' https: http:
# X-XSS-Protection
X-XSS-Protection 响应头是 Internet Explorer,Chrome 和 Safari 的一个特性,当检测到跨站脚本攻击 (XSS (en-US)) 时,浏览器将停止加载页面。若网站设置了良好的 Content-Security-Policy 来禁用内联 JavaScript ('unsafe-inline'),现代浏览器不太需要这些保护,但其仍然可以为尚不支持 CSP 的旧版浏览器的用户提供保护。
IDaaS提供Content-Security-Policy 的文本输入框。可由客户自定义填写,并作用与HTTP请求响应头中,不做内容校验, 详细内容可参考: Content-Security-Policy (opens new window)
- Content-Security-Policy: 1 ; mode=block
0 : 禁止 XSS 过滤。
1 : 启用 XSS 过滤(通常浏览器是默认的)。如果检测到跨站脚本攻击,浏览器将清除页面(删除不安全的部分)。
1; mode=block : 启用 XSS 过滤。如果检测到攻击,浏览器将不会清除页面,而是阻止页面加载。
# Strict-Transport-Security
HTTP Strict-Transport-Security(通常简称为 HSTS)响应标头用来通知浏览器应该只通过 HTTPS 访问该站点,并且以后使用 HTTP 访问该站点的所有尝试都应自动重定向到 HTTPS。
IDaaS提供 Strict-Transport-Security 的文本输入框。可由客户自定义填写,并作用与HTTP请求响应头中,不做内容校验, 详细内容可参考: Strict-Transport-Security (opens new window)
- Strict-Transport-Security: max-age=<expire-time>
- Strict-Transport-Security: max-age=<expire-time>; includeSubDomains
- Strict-Transport-Security: max-age=<expire-time>; includeSubDomains; preload
max-age=<expire-time> : 浏览器应该记住的,只能使用 HTTPS 访问站点的最大时间量(以秒为单位)。
includeSubDomains : (可选) 如果这个可选的参数被指定,那么说明此规则也适用于该网站的所有子域名。
preload : (可选) 非标准
# X-Content-Type-Options
X-Content-Type-Options HTTP 消息头相当于一个提示标志,被服务器用来提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的设定,而不能对其进行修改。这就禁用了客户端的 MIME 类型嗅探行为,换句话说,也就是意味着网站管理员确定自己的设置没有问题。
IDaaS提供 X-Content-Type-Options 的文本输入框。可由客户自定义填写,并作用与HTTP请求响应头中,不做内容校验, 详细内容可参考: X-Content-Type-Options (opens new window)
语法 X-Content-Type-Options: nosniff
参数 nosniff 下面两种情况的请求将被阻止:
- 请求类型是"style" 但是 MIME 类型不是 "text/css",
- 请求类型是"script" 但是 MIME 类型不是 JavaScript MIME 类型。
# Referrer-Policy
Referrer-Policy 首部用来监管哪些访问来源信息——会在 Referer 中发送——应该被包含在生成的请求当中。
IDaaS提供 Referrer-Policy 的文本输入框。可由客户自定义填写,并作用与HTTP请求响应头中,不做内容校验, 详细内容可参考: Referrer-Policy (opens new window)
- Referrer-Policy: no-referrer
- Referrer-Policy: no-referrer-when-downgrade
- Referrer-Policy: origin
- Referrer-Policy: origin-when-cross-origin
- Referrer-Policy: same-origin
- Referrer-Policy: strict-origin
- Referrer-Policy: strict-origin-when-cross-origin
- Referrer-Policy: unsafe-url
no-referrer :整个 Referer 首部会被移除。访问来源信息不随着请求一起发送。
no-referrer-when-downgrade :在没有指定任何策略的情况下用户代理的默认行为。在同等安全级别的情况下,引用页面的地址会被发送 (HTTPS->HTTPS),但是在降级的情况下不会被发送 (HTTPS->HTTP)。
origin :在任何情况下,仅发送文件的源作为引用地址。例如 https://example.com/page.html 会将 https://example.com/ 作为引用地址。
origin-when-cross-origin :对于同源的请求,会发送完整的 URL 作为引用地址,但是对于非同源请求仅发送文件的源。
same-origin :对于同源的请求会发送引用地址,但是对于非同源请求则不发送引用地址信息。
strict-origin :在同等安全级别的情况下,发送文件的源作为引用地址 (HTTPS->HTTPS),但是在降级的情况下不会发送 (HTTPS->HTTP)。
strict-origin-when-cross-origin :对于同源的请求,会发送完整的 URL 作为引用地址;在同等安全级别的情况下,发送文件的源作为引用地址 (HTTPS->HTTPS);在降级的情况下不发送此首部 (HTTPS->HTTP)。
unsafe-url :无论是同源请求还是非同源请求,都发送完整的 URL(移除参数信息之后)作为引用地址。
# 功能验证
- 编辑响应头配置配置保存后。等待缓存重置时间后,通过访问任意IDaaS接口可查看接口响应头的变化