设置 HTTP HEADER 字段来提高 Web 安全性

X-Frame-Options

该响应头中用于控制是否在浏览器中显示 frame 或 iframe 中指定的页面,主要用来防止 Clickjacking (点击劫持)攻击。

X-Frame-Options: SAMEORIGIN
DENY 禁止显示 frame 内的页面(即使是同一网站内的页面)
SAMEORIGIN
允许在 frame 内显示来自同一网站的页面,禁止显示来自其他网站的页面
ALLOW-FROM origin_uri 允许在 frame 内显示来自指定 uri 的页面(当允许显示来自于指定网站的页面时使用)

X-Content-Type-Options

如果从 script 或 stylesheet 读入的文件的 MIME 类型与指定 MIME 类型不匹配,不允许读取该文件。用于防止 XSS 等跨站脚本攻击。

X-Frame-Options: nosniff

X-XSS-Protection

用于启用浏览器的 XSS 过滤功能,以防止 XSS 跨站脚本攻击。

X-XSS-Protection: 1; mode=block
0 禁用 XSS 过滤功能
1 启用 XSS 过滤功能

Content-Security-Policy

用于控制当外部资源不可信赖时不被读取。用于防止 XSS 跨站脚本攻击或数据注入攻击(但是,如果设定不当,则网站中的部分脚本代码有可能失效)。

之前的字段名为 X-Content-Security-Policy

Content-Security-Policy: default-src 'self'
default-src ‘self’:允许读取来自于同源(域名+主机+端口号)的所有内容
default-src ‘self’
*.example.com:允许读取来自于指定域名及其所有子域名的所有内容

X-Permitted-Cross-Domain-Policies

用于指定当不能将”crossdomain.xml”文件(当需要从别的域名中的某个文件中读取 Flash 内容时用于进行必要设置的策略文件)放置在网站根目录等场合时采取的替代策略。

X-Permitted-Cross-Domain-Policies: master-only
master-only 只允许使用主策略文件(/crossdomain.xml)

Strict-Transport-Security

用于通知浏览器只能使用 HTTPS 协议访问网站。用于将 HTTP 网站重定向到 HTTPS 网站。

Strict-Transport-Security: max-age=31536; includeSubDomains
max-age 用于修改 STS 的默认有效时间。
includeSubDomains 用于指定所有子域名同样使用该策略。

Access-Control-Allow-Origin等CORS相关字段

当使用 XMLHttpRequest 从其他域名中获取资源进行跨域通信时使用。

Access-Control-Allow-Origin: http://www.example.com
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-CODE
Access-Control-Max-Age: 1728

上述代码用于设定与”http://www.example.com“进行跨域通信处理,允许使用 POST, GET, OPTIONS 方法,在发送的请求头中添加 X-CODE 字段,通信超时时间为1,728,00秒。

相关推荐:
漏洞描述: 2018年4月11日,Spring Data Commons存在远程代码执行漏洞(CVE-2018-1273),攻击者可以构造恶意的请求对Spring Data REST发起攻击,包括使用基于HTTP资源的,或者其他请求基于Spring Data’s pr …
Microsoft .NET Framework 4.7 又被称为 .NET 2017,将会集成在 Windows 10 之中,同时支持 32/64 位,支持简体中文等多种语言。 .NET框架(.NET Framework) 是由微软开发,一个致力于敏捷软件开发(Agile so …
1.修改注册表 打开“注册表编辑器”,找到[HKEY_CURRENT_USERSoftwareMicrosoftwindowsCurrentVersionPoliciesSystem],在右侧窗格中创建名为DisableTaskMgr的DWord值,将其值设置为1即可禁用“任务管理器”, …
macOS下可能不像WIN下那么简单地就能修改,毕竟有权限的管控,那么需要用到时怎么操作? 1、打开终端命令窗口,找不到就COMMAND+空格键; 2、输入命令:sudo nano /etc/hosts; 3、输入超级用户口令以获得 …
其实这个问题的成因是比较简单的,主要是由于id_rsa相关的文件权限不对,可能的场景是从其它地方拷贝了此文件到.ssh目录下,但又没有纠正权限导致。 怎么解决?授予合理的权限即可。 #shell#chmod 755 ~/.s …
拿起手机扫一扫即可带走我!