Web 安全

确保你的 Web 站点或 Web 应用安全是十分重要的,即使是代码中很小的 bug 也可能导致隐私信息被泄露,黑客会尝试偷窃数据。这些文档提供信息帮助你使代码更安全。此处列出的面向 Web 安全的文章提供的信息可以帮助你保护站点及其代码免受攻击和数据窃取。

内容安全

CSP (内容安全策略)

内容安全策略CSP)通过探测和减轻包括跨站脚本攻击 XSS 和数据注入攻击的攻击手段,更进一步提升安全性。上述攻击手段可以使用在数据窃取、网站污损、亦或是恶意软件的分发等场景中。

连接安全

传输层安全(TLS)

传输层安全(TLS)协议是在两个互联的应用或设备上稳定且私密地交换信息的标准。使用 TLS 的应用可以选择对数据安全性和可靠性有保障的安全参数。这篇文章提供了 TLS 的概述,以及在保护你的内容时需要做出的选择。

HTTPS

HTTPS超文本传输协议安全)是 HTTP 协议的加密版本,它使用 SSLTLS 协议来对客户端和服务器之间的所有通信进行加密。所建立的安全连接使得客户端可以确认所连接的服务器,并且可以交换敏感数据。

HTTP Strict-Transport-Security

Strict-Transport-Security: HTTP 标头可以让网站指定其只能通过 HTTPS 访问。

证书透明度

证书透明度是一个开放的框架,旨在防止和监测证书的误发。新颁发的证书被记录到公开运行的、通常是独立的 CT 日志中,这些日志保持着一个仅有附录的、有密码学保证的 TLS 证书的记录。

混合内容

如果一个 HTTPS 页面包含明文 HTTP 获取的内容,那么该页面就被称为混合内容页面。像这样的页面只能保证部分内容加密,未加密的部分仍然可以被嗅探器和中间人攻击者感知。

如何修复含有混合内容的网站

如果你的网站传送了 HTTPS 页面,所有使用 HTTP 传送的活跃混合内容默认会被阻止。因而,你的网站可能会对客户不可用(例如 iframe 或插件不加载)。被动的混合内容默认是显示状态,但用户也可以通过首选设置来阻止这种类型的内容。这个页面解释了作为 web 开发人员需要注意的事情。

安全上下文

一个安全的上下文是一个 WindowWorker,对于它来说,有理由相信内容已经安全地通过 HTTPS/TLS 交付,并且与安全的上下文进行通信的可能性有限。许多 Web API 和功能只能在安全上下文中访问。安全上下文的主要目标是防止中间人攻击者访问强大的 API,从而进一步损害攻击受害者。

限制在安全上下文中的特性

该参考列出了仅在安全上下文中可用的 web 平台特性。

弱签名算法

用于数字证书签名的摘要算法是保证证书安全性的关键因素。这篇文章提供了一些有关已知的弱签名算法信息,在使用的时候可以避免它们。

301 和 302 响应码跳转

待补充

数据安全

使用 HTTP Cookies

HTTP cookie(web cookie,浏览器 cookie)是服务器发送给客户端 web 浏览器的一小块数据。浏览器可能会存储它,并在后续对同一服务器的请求中将它发送回服务器。例如,通常这可以说明两个请求来自同一个浏览器,从而让用户保持登录状态。

Local storage

Window 对象的 Window.localStorage 属性是一种服务器在客户端上存储持久性数据的方法,数据可以在不同的会话中持久访问。

信息泄露

Referer 标头策略:隐私和安全性考虑

有一些与 Referer HTTP 标头相关的隐私和安全风险。这篇文章描述了它们,并提供避免这些风险的建议。

Robots.txt

待补充

Site maps

待补充

完整性

同源策略

同源策略限制了一个中加载的文档或脚本与其他源中的资源交互的方式。这是一种用来隔离潜在恶意文档的关键安全机制。

子资源完整性

子资源完整性(SRI)是一种安全功能,允许浏览器验证所获取的文件(比如,从一个内容分发网络中)没有遭受恶意修改。它的工作原理是允许你提供一个加密哈希值,目标文件必须匹配这个值。

HTTP Access-Control-Allow-Origin

Access-Control-Allow-Origin 响应头表明响应是否可以与来自给定来源的请求代码共享。

HTTP X-Content-Type-Options

X-Content-Type-Options 响应的 HTTP 头是一个标记,由服务器用来表示应该遵循 Content-Type 头中宣告的 MIME 类型,不应该被改变。这是一种选择退出 MIME 类型嗅探的方法,或者换句话说,MIME 类型是故意配置的。

点击劫持保护

点击劫持描述了用户被愚弄,点击了一个产生用户意料之外行为的 UI 元素的现象。

HTTP X-Frame-Options

X-Frame-Options HTTP 响应头可以用来表明是否应该允许浏览器在 <frame><iframe><embed><object> 中渲染页面。网站通过这些方法,保证它们的内容不被轻易嵌入至其他站点,可以避免点击劫持攻击。

CSP: frame-ancestors

HTTP Content-Security-Policy(CSP)的 frame-ancestors 指令指定了使用 <frame><iframe><object><embed> 元素嵌入页面的合法父元素。

用户信息安全

不安全的密码

通过 HTTP 提供登录表格是特别危险的,因为有各种各样的攻击可以用来提取用户的密码。网络窃听者可以通过嗅探网络,或通过修改传输中的服务页面来窃取用户的密码。

隐私性和 :visited 选择器

在大约 2010 年之前,CSS :visited 选择器允许网站获取用户的浏览历史,弄清用户访问过哪些网站。为了缓解这个问题,浏览器已经限制了从访问过的链接中获得的信息量。

与安全相关的术语

参见