CodePen如何确保自己的安全

IT资讯 2018-08-03 126 次浏览 0 条评论

了解CodePen如何转变为HTTPS安全站点。

CodePen为用户提供了一个开发操场,人们可以创建名为Pens的小型网页。这些笔是HTML,JavaScript和CSS的混合,并且由于各种原因而被使用。无论是展示UI设计概念,API,调试问题还是展示一些花哨的画布,CodePen都旨在成为快速,畅通无阻的开发的一站式商店。

CodePen完全是HTTPS的举动很大。创建了超过1500万笔,而且由于CodePen对人们可以创建的内容没有严重的限制,因此创建的Pens超过四分之三的链接,图像和请求可能是不安全的外部源。

HTTPS(安全超文本传输​​协议)保护用户计算机和站点之间数据的完整性和机密性。在线安全和私人会议正在迅速成为一种期望,而不是一种选择。

在Google Chrome中,绿色锁定表示该页面是安全的

当浏览器发现页面的安全性受到损害时,将删除安全的绿色锁定

很长一段时间以来(自Firefox 23,IE9和Chrome早期版本)浏览器阻止了在安全网站上运行的混合内容。因此,HTTPS不允许从HTTP传输的脚本运行。

对于CodePen,这意味着如果有人正在使用不安全的API,他们的笔可能会突然停止工作,这是我们想要的最后一件事。当页面不安全时,它也会阻止我们处理注册和接受密码,这也是我们需要避免的。

以下是我们在CodePen上转向HTTPS的方式 - 我们希望您可以从我们的经验中学习。

01.尽早沟通计划

在我们进入好的东西之前,转向HTTPS的很大一部分 - 特别是如果你有活跃的用户 - 就是沟通。这不容小觑。在我们开始对网站进行永久性更改之前的几个月,我们为CodePen上的每个人提供了大量的通知和信息。

在变更前三个月,我们告诉大家我们将转向HTTPS以及这对他们意味着什么,特别是如果他们使用特定的API和可以使用不安全的HTTP协议提供的库。这是关于播种的想法,即会有变化。

在变更前一个月,我们再次与所有人联系,重申变更日期。然后一周前,我们发布了工具并告诉大家已经做出的改变。最后,在搬家前一天,我们再次向大家介绍了我们的进展。

这可能看起来像很多电子邮件和通知,但实际上,越多人了解可能影响他们的变化,就越好。我们希望没有理由不知道。在告知超过一百万用户之后,我们没有收到任何一封投诉电子邮件,只有少数人询问有关如何修复笔的建议。

02.教育用户

 

要获得安全,有很多事情要做,第一个是获得正确的证书。对我们而言,这是通过AWS证书管理器完成的,这使我们能够轻松地为我们的服务器采购,管理和应用证书。

你可以遇到许多较小的陷阱,我们不会在这里讨论这个问题,但你可以在这里阅读更多内容。

我们确保在HTTPS页面上开始新的创作。这是推动每个人创建更安全的笔的重要一步

在对此进行排序之后,我们想要开始更新人们的笔,帖子和收藏品,但唉,这必须等待。为了在不扰乱任何人的情况下实现这一目标,我们需要采取措施:a)教育人们使用不安全协议的链接,以及b)防止人们创建更多不安全的链接。

我们采取的第一步是在HTTPS页面上开始所有新的创作。这意味着如果有人试图使用不安全的资源,他们会立即在他们的开发者控制台中看到浏览器已经停止了请求。

仅这一点是一大步,默默地推动每个人创建更安全的笔和项目,这个过程立即生效。

向用户显示问题是什么比告诉他们只是改变没有解释更好

向用户显示问题是什么比告诉他们只是改变没有解释更好其次,我们开始通知人们他们是否包含了将来可能会破坏的东西。当您向Pen添加外部资源时,这些包括很少的警报。

这些外部资源是CodePen中HTTP链接的主要入口点,人们可以链接到Google字体,外部图像和自定义托管脚本等内容。

03.重定向内容

一旦我们在一个建立事物的大多数人以安全的方式创建它们的地方,我们就能够开始将页面迁移到HTTPS。这是一个渐进的过程,有一些怪癖,最终确保只能使用安全协议访问某些页面。如果以HTTP格式请求它们,则会重定向它们。

最初,我们移动了不包含任何用户创建的页面,因为通过这些页面,我们能够确保不会破坏任何内容 - 例如博客,文档页面,作业,聚会和CodePen Spark。

事实证明,这些小动作对整体情况非常重要,因为我们看到流量慢慢转向HTTPS。真正的好处是,一旦人们在安全协议的任何页面上,CodePen上的其余链接都是协议不可知的,这意味着他们将保持在HTTPS上。

因此,我们发现大多数使用CodePen的人最终都是从这一点开始安全浏览的。

04.修复可能损坏的链接

一旦我们有了一个安全的协议,并且人们正在积极浏览它上面的网站,我们就开始尝试修复可能破坏的内容的整体过程。这是该过程的一个重要部分,因为CodePen在整个网络上的博客和文档中托管了数百万个嵌入。我们想要的最后一件事是CodePen成为某种编码墓地。

第一步是找到人们可以输入自己的URL的任何地方。最后我们有了一个巨大的清单。然后我们浏览了这个列表,并保存了任何URL的字符串。

我们很快意识到手头的任务规模巨大:我们有超过1000万个人链接。在这1000万个中,恰好有2,129,437个不安全的链接。

我们能够将2,129,437个网址中的1,787,411个转换为安全网址,从而节省了大量笔

我们通过这些2,129,437个链接运行了一个脚本,该链接将检查链接的HTTPS版本上是否存在类似的资源。因此,对于像http://fonts.google.com这样的内容,https://fonts.google.com上会有一个完整的副本,这意味着我们可以更改网址而不会感到干扰或危害Pen的功能或创建者的隐私。

这个过程很漫长,我们发出了数十万个请求,尽管通过缓存结果可以更快一些。例如,一旦我们知道有一个HTTPS版本的fonts.google.com,我们就知道从那一点开始的每个类似链接都可以在不进行其他检查的情况下进行转换。

也就是说,即使在完成此操作后,我们也会对链接进行人工检查,看看是否存在任何差异。尽管你可以信任你的代码,但检查总是好的.

我们能够将2,129,437个网址中的1,787,411个转换为安全网址,从而节省了大量笔。我们不想放弃那些剩余的资源,所以我们解析了那些无法修复的资源,并编译了一些最常用的资源。

任何超过500次使用没有安全服务器的资源都被放入列表中。我们联系了这些创建者,并发现很多人很高兴为我们提供一个新的URL(如果他们有其他地方托管的资源)或者从安全协议本身提供这些资源。

05.帮助用户修复剩余的链接

我们的工具有助于识别Pen何时遇到特定问题,以及如何解决它

由于大多数笔都是安全的,我们希望为那些没有更新的人做点什么。我们创建了一个工具,可以让人们看到他们的哪些笔违反了安全协议。

为此,我们为每个人创建了一个仪表板页面,以查看他们的哪些笔可能会受到损害。这本身有其自身的问题,因为我们需要解析每个Pen中的所有代码。从机器的角度来看,很难分辨哪些URL将被使用以及哪些URL是无害的。例如,注释中的不安全链接不会危害页面的完整性。

对于JavaScript,我们使用了Esprima,这是一个符合ECMAScript的解析器,用于检查代码中是否正在使用URL。对于HTML,我们使用浏览器的DOMParser API。获得这些结果后,我们提供了一个简单的页面,可以显示哪些链接无效,使每个人都能看到并修复剩余的笔。总而言之,为保护CodePen所采取的步骤很漫长,并涉及大量实际操作。 从安全协议提供网站的最佳时间是20年前。 现在是第二个最好的时间。

0
小包子

【 飞龙网.com:小包子】为你推荐!我的文章如同我的名字,香甜可口,咸淡适宜,油而不腻,阅后令你回味无穷尽哦~

发表评论