防止Web攻击,做好HTTP安全标头

前言

下图是几年前一位女性在访谈会上提问Linus(Linux操作系统之父) 为什么英伟达显卡在Linux系统中兼容性这么差?

Linus说他们曾经去和英伟达谈过关于显卡在Linux上兼容的问题,但是英伟达却只对安卓系统(由Linux扩展而来)的显卡兼容很主动。

最后Linus竖起中指说了一句,"so,nivdia f**k you!"。

销售“Security Scorecard”的公司正在崛起,并已开始成为企业销售的一个因素。但还是有很多人因为他们的评级不佳而改变了购买策略。

“Security Scorecard”是为网站提供监控网络安全风险,为企业提供安全基准测试和风险评级的企业。

Security Scorecard 可以评估的安全风险包括web 应用安全、DNS 健康性、IP 信誉度、网络安全、补丁修补情况、社交工程、断点安全、密码泄露、黑客关注程度、Cubit Score(容易攻击程度)等。每一类安全风险都按照 A 到 F 进行评级,其中 A 为最安全、F 为最危险。这种兼顾整体与局部的自动化安全评估受到了不少客户的青睐,据称目前已经拥有超过 100 家客户。

这些评级公司如何计算公司安全分数?

统计发现他们使用了HTTP安全标头和IP信誉的组合。

IP信誉基于黑名单和垃圾邮件列表以及公共IP所有权数据。只要您的公司不发送垃圾邮件并且可以快速检测并阻止恶意软件感染,这些通常应该是干净的。

HTTP安全头的计算方式与Mozilla Observatory的工作方式类似。因此,对于大多数公司而言,他们的得分主要取决于面向公众的网站上设置的安全标头。设置正确的标头可以提高网站安全性,还可以帮助你赢得存在安全意识的客户的交易。

在本文中,我将介绍常用的评估标头,为每个标头推荐安全值,并提供示例标头设置。在本文的最后,我将概述包括常见应用程序和Web服务器的示例设置。

重要的安全标头

Content-Security-Policy

CSP用于通过指定允许加载哪些资源来防止跨站点脚本。在此列表中的所有项目中,这可能是最合适的创建和维护以及最容易发生风险的时间。

在使用CSP时,请务必仔细测试它, 阻止站点以有效方式使用的内容源破坏站点功能。

创建它的一个很好的工具是Mozilla laboratory CSP browser extension浏览器扩展。

https://addons.mozilla.org/en-US/firefox/addon/laboratory-by-mozilla/

在浏览器中安装它,彻底浏览要为其创建CSP的站点,然后在您的站点上使用生成的CSP。

理想情况下,还可以重构JavaScript,因此不会保留内联脚本,你可以删除“unsafe inline”指令。CSP可能很复杂且令人困惑,因此如果你想要更深入,可以访问官方网站。一个好的CSP可能如下(这可能需要在真实站点上进行大量修改)。在你的网站包含的每个部分中添加域名。

Strict-Transport-Security

此标头告诉浏览器该网站应仅通过HTTPS访问 - 始终在你的网站启用HTTPS。如果你使用子域,你可以在任何子域上强制执行此操作。

X-Content-Type-Options

此标头确保浏览器遵守应用程序设置的MIME类型。这有助于防止某些类型的跨站点脚本绕过。

它还可以减少意外的应用程序行为,因为浏览器可能会错误地"猜测"某种内容,例如当开发人员将页面标记为"HTML",但浏览器认为它看起来像JavaScript并会尝试将其呈现为JavaScript。

此标头将确保浏览器始终遵守服务器设置的MIME类型。

Cache-Control

这个相比其它的有点棘手,因为你可能希望针对不同的内容类型使用不同的缓存策略。

任何包含敏感数据的页面(例如用户页面或客户结帐页面)都应设置为no-cache。其中一个原因是阻止共享计算机上的某人按下后退按钮或浏览历史记录并能够查看个人信息。但是,很少更改的页面(如静态资源(图像,CSS文件和JS文件))很适合缓存。这可以在逐页的基础上完成,也可以在服务器配置上使用正则表达式完成。

Expires

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190816A0ROTG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券