我有一个静态网站。用户无法登录或执行任何其他操作。哪种常见的HTTP安全措施对我的网站有意义?

我是否需要这些措施?


HTTPS
严格的传输安全性
内容安全策略
证书固定

点击劫持保护

内容嗅探保护


评论

HTTPS几乎总是有意义的。考虑到某些人可能想要避免让其他人确切知道他们在您的网站上访问过哪些页面(例如,如果某些页面包含某些类型的政治内容,并且他们从一个独裁者的国家浏览……甚至更深入地了解:如果您托管的网站类似色情网站,也许某些用户不想让其他人知道他们喜欢观看哪种视频...)

欢迎提供有关保护静态网站的任何建议。另外,我正在寻找比“为了确定而启用所有功能”更具体的答案。

@immibis如果您使用HTTPS,则没有充分的理由使用HTTP。默认情况下,始终提供更多安全性已成为最佳做法。

@chrylis除非未实现HTTPS的16位烤面包机访问此网站,当其他人决定我需要什么而不是给我选择时,我讨厌它。

“静态”到底是什么意思?它是完全用HTML和CSS编写的,还是在服务器上运行的是Javascript甚至是任何代码?

#1 楼

常见的Web应用程序攻击媒介不适用于严格静态的网站。没有互动元素,就没有帐户可以劫持,也没有Cookie可以窃取。但是,即使您没有托管精美的内容,也应为访问者提供加密的访问权限。您的内容对访问者的完整性。将HPKP添加到静态站点可能不必要地偏执,并且在部署它时必须小心。讨论的其他安全措施与静态站点大多数无关,但实施起来是如此简单,以至于您仍然可以决定使用它们。是的,请动手。使用免费的SSL证书提供商(如“加密”)时,您有充分的理由不进行切换。 HTTPS保护传输的数据的私密性和完整性,即使使用静态内容也是如此。传送恶意软件。侵犯隐私的示例:我的雇主,与我连接的WiFi热点所有者或ISP都可以看到我正在阅读的确切文章以及从您的网站下载的内容。但是,使用HTTPS时,我通常会公开元数据(连接到的IP地址,由于SNI等导致的主机名等)。

HTTP严格传输安全性

是,做吧。 HSTS有助于强制用户仅使用HTTPS连接到您的网站,从而防止SSL剥离攻击。如果推出HTTPS,那么跟进HSTS非常有意义。通过添加一个附加的响应标头,可以很容易地实现它,就像这样:

由于HSTS仅从用户第一次遇到标头(TOFU模型)直到达到max-age超时才生效,因此您甚至可能希望将站点提交到HSTS预加载列表。这样的结果是,用户从第一次访问起便会开始通过HTTPS连接。密钥固定(“证书固定”)

这取决于。 HSTS告诉浏览器在给定时间内严格使用HTTPS,而HPKP标头指定了浏览器将来应该信任的证书。从证书链中固定公钥可以防止攻击者用流氓证书替换您的证书。这样的攻击是极不可能的,因为对手将需要妥协CA才能颁发恶意证书(尽管以前已经发生过)。此外,在设置HPKP时必须小心,因为部署缺陷会导致以前的用户无法访问您的网站。

那么,您应该使用HPKP吗?是的你应该。如果您固定正确,则一切向南发展的可能性就很小。它。创建CSP的目的是通过限制站点允许从哪个来源加载资源来减轻XSS和相关的攻击。由于您的网站纯粹是静态的,可能根本没有嵌入任何外部资源,因此它可能不是实际的攻击手段。明智的策略将取决于您正在加载哪种资源。例如,此限制性策略标头仅允许来自相同来源的内容:

Strict-Transport-Security: max-age=31536000


点击劫持保护

是的,为什么不。点击劫持攻击会诱使用户通过伪装的框架不经意间与您的网站进行交互。但是,如果没有交互元素,则没有实际损坏。 (不过,在更好的环境中,跨源框架将是一种可选功能。)实现非常简单。此示例完全禁止嵌入任何帧: >
Content-Security-Policy: default-src 'self'


内容嗅探保护

是的,为什么不这样做。如果您没有正确声明内容类型,浏览器可能会猜测(嗅探)该类型(尽管这种行为已变得不那么普遍了)。对于被认为是不可执行但由于缺少内容类型而在嗅探之后被确定为可执行格式的用户内容而言,这尤其危险。对于您的静态站点,这几乎不会成为问题。为了安全起见,您可以添加以下标头以防止嗅探(但它不能替代正确声明的MIME类型):

X-Frame-Options: Deny


另请参阅:X-Content是否-Type-Options真的可以防止内容嗅探攻击吗? >

评论


HSTS和HPKP在哪里存储连接参数以用于将来的连接? (客户端?)如果您由于钉扎错误而被“锁定”,用户是否不能仅使用其他(或新安装的)浏览器进行连接?

–凯文·费根(Kevin Fegan)
16-11-14在2:12



@KevinFegan是,客户端。有时它是内置在浏览器中的。用户通常不喜欢重新安装其浏览器,因此他们很可能会转到其他地方。

–有人支持Monica
16年11月14日下午4:54

由于SNI,HTTPS连接的确泄漏了域名(不仅仅是IP地址)。无需嗅探DNS流量。

–Ayesh K
16年11月14日在12:59

@AyeshK是的,因为所有现代浏览器都支持SNI,所以您无需打扰DNS。我将其添加到答案中。

– Arminius
16年11月14日在13:14

关于固定的文章没有提及您的保险库中应该有一个备用证书,如果您的真实证书(或您使用的CA)受到破坏,则该证书也应固定。如果仅固定当前证书,则永远无法更改它。这增加了固定到我认为对于静态站点不值得的程度的成本和风险。

– Sjoerd
16年11月14日在13:35

#2 楼



HTTPS
严格的传输安全性
证书固定




这些保护数据的传输,防止嗅探和篡改。此保护不仅针对浏览器的请求,而且针对响应,因此即使对于静态站点也完全有意义。



内容安全策略



如果您不包含任何其他内容,则可能没有必要,但也不会造成损害。如果您在控件之外包含外部内容,例如广告,图像,字体,脚本,则应加以限制。



点击劫持保护



如果您包含指向基于可信赖的引荐来源网址(即您的网站)的其他链接,或者如果您包含社交媒体按钮或类似按钮,则限制框架是有意义的。如果不是这样的话,除非您明确希望您的站点可以被其他站点构架,否则不会造成损害。



内容嗅探保护
br />如果您在内容嗅探处于活动状态时提供的内容可能会有不同的解释(例如,将HTML作为文本/纯文本显示源代码),则启用内容嗅探保护是有意义的。如果不是的话,就没有害处。

评论


Web应用程序过滤和使用CDN怎么样?恕我直言,对于任何网站来说,这些都不算过分。

– Todd Wilcox
16年11月13日在16:56

@ToddWilcox:我认为此评论与以下问题无关:该问题询问相对于动态网站,静态网站应采用哪些措施。

– Steffen Ullrich
16年11月13日在17:10



您仍然可以DDoS静态站点。

– Todd Wilcox
16年11月13日在20:03

@ToddWilcox:您可以执行DDos,可以对服务器进行黑客攻击,可以对域进行劫持...-所有都是正确的,但这与该问题无关。它不是在问最佳保护,而是在问某些特定保护有多大意义。

– Steffen Ullrich
16-11-13在20:23



@SteffenUllrich是的,但是,“它的意义是多少”取决于站点期望的流量,以及如果站点宕机将带来多大的危害-OP均未提及。

– jpaugh
16-11-14在1:56



#3 楼

在规划网站时,有很多事情要考虑,尤其是当它是您的商业网站时,您总是需要格外注意。但是,静态网站的风险数量通常比其他网站少,但如上所述,它应该遵循重要的安全性原则。此处提供的详细信息仅用于共享有关不同类型站点的安全性问题的其他知识。我不需要在这里添加太多内容,因为@Arminius和@Steffen消除了大多数疑问。还是让我补充一下我的看法:

HTTPS:他们的网站。第一个原因是Google宣布提升排名;另一个原因是浏览器对待非HTTPS站点。

HSTS:

HTTP严格传输安全性或HSTS是一种安全协议,可以保护网站免受Cookie劫持和降级攻击的同时Web服务器,仅允许Web浏览器和其他代理上的安全HTTPS连接。此策略在HTTPS安全性上增加了额外的一层,并帮助网站及其用户保持安全。网站的性能,但也通过放置令人无法忍受的内容来破坏声誉。无论是静态网站还是动态网站,注入恶意代码都可能使网站陷入困境。使用反恶意软件和定期的漏洞评估可以帮助网站防止此类不必要的攻击。<​​br />
HPKP:

HTTP公钥固定(HPKP)是避免此类攻击的有效方法通过限制攻击者发布具有恶意意图的欺诈证书。 HPKP通常作为证书固定很不受欢迎,而HPKP是允许HTTPS网站抗议攻击者停止颁发欺诈性证书的安全机制。

点击劫持:

该技术在盗版电影网站上非常流行,他们会将用户转发到虚假页面或下载。有时,Clickjacking技术可以与恶意软件活动一起使用,在这种情况下,攻击者通过假冒广告来传播恶意软件。字节,从而攻击者可以推测内容的文件类型。内容嗅探指的是不正确的元数据,该元数据被设置为呈现文件以正确的方式进行推断。

评论


我认为Cookie劫持,XSS或clickjacking不适用于静态网站。

– Sjoerd
16年11月14日在13:52

我认为可以在客户端上运行Javascript的网站上使用反射的XSS攻击。我不确定这是否是OP称为static的一部分。

–bdsl
16年11月16日在13:51

#4 楼

这只是我的意见:



HTTPS
严格的传输安全性
内容监听保护
证书固定

>

如果您不提供自定义或受保护的信息,为什么要在静态站点上防止嗅探呢?我猜静态站点上的信息是公开的,因此无需讨论。



内容安全策略



如果您既不包含任何动态内容,也不包含外部内容(静态网站不包含)。然后,这不是必需的。由于不可能进行XSS攻击。您明确将您的网站设置为可被其他人框架。 />无论如何,如果您认为您可以在不久的将来对该站点进行编辑以使其更加动态,请添加所有可能的安全措施。

评论


您可能需要在静态站点上支持HTTPS,以保护站点的完整性。例如,为防止“免费” WiFi热点在您的网站中插入广告。

– Sjoerd
16年11月14日在13:39

@Sjoerd,您是对的,但是这种情况并不常见。使用“免费” WiFi热点的人并不多。并不是每个人都插入广告。无论如何,您都是对的,但严格来说,他不需要采取任何安全措施。

– KanekiDev
16年11月14日在14:55

“没有多少人使用“免费的” WiFi热点。”我想反对这个。许多人这样做(至少在我的国家)。想想麦当劳的热点。但是您可能对广告是正确的。无法对此发表评论。

–假装
16年11月14日在17:26

好吧,您是对的,我想说的是,没有多少人可以浏览免费的wifi热点,因此可以推测,每年只有一次或两次,有人可以从公共wifi点浏览他的静态网页。

– KanekiDev
16年11月15日在7:09

应该使用HTTPS来确保HTTP连接的完整性。不幸的是,不仅仅是WiFi热点会修改使用明文协议发送的数据:duckduckgo.com/?q=isp+inject+ads :(

– Anthony Geoghegan
16-11-15在12:38