今年我决定多写点东西。作为保持写作习惯的一部分,我认为记录我所学到的东西,并每月写下相关的博文是有益的。
我想出了这个主意,即用心记下新的知识,以跟踪我的道路或更好地记住我学到的东西。
你现在读到的这篇文章是未来更多文章中的第一篇。我把这种帖子称为 "MOTILs"--TILs月。MOTILs是我想出的最好的名字;我怎么称呼它并不重要。重要的是,要坚持写到年底。
不多说了,下面是我在2021年1月学到的一些东西。
子资源的完整性检查
很多时候,我们依赖于第三方代码。如果攻击者破坏了我们导入的第三方代码的源头,他们就会造成伤害。
假设我们从内容交付网络(CDN)导入一些JavaScript,而该CDN被黑客攻击,攻击者就会在我们从CDN导入的JavaScript上粘贴恶意代码。无辜的用户就会受到攻击。子资源完整性(SRI)是缓解通过第三方代码进行攻击的一种方法。
利用这一安全功能,只需要几个步骤:
- 获取你要导入的资源的加密哈希值(摘要)。
- 在资源中嵌入一个包含资源哈希值的
integrity属性。
对于第一步,你可以利用openssl ,像这样生成导入资源的哈希值。
cat FILENAME.js | openssl dgst -sha384 -binary | openssl base64 -A
在第二步,你嵌入它。你的代码可能看起来像这样:
<script src="https://example.com/example-framework.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
crossorigin="anonymous">
</script>
有一个方便的网站可以生成SRI哈希值。
HTTP严格传输安全
很多网站都将HTTP连接重定向到HTTPS。当网络浏览器访问它以前见过的网站并通过HTTP从服务器获得一个cookie时,浏览器会在随后通过HTTP向服务器发出的请求中附加cookie。中间人攻击可能发生在最初的HTTP连接中。
HTTP严格传输安全策略指示浏览器只通过HTTPS发送cookie。我们可以通过设置Nginx上服务器的响应中的Strict-Transport-Security 头来做到这一点,例如,通过设置。
server {
add_header Strict-Transport-Security "max-age=3153600" always;
}
门口效应
你知道当你进入一个房间时,你会忘记你为什么进来的感觉吗?这在我身上发生过无数次。当这种情况发生时,我做了一件事来记住我去那个房间的目的,那就是回到房间外,等待几秒钟,然后我想起我的目的。嗯,事实证明,这有一个名字。它被称为 "门径效应"。
心理学家认为,通过一个门洞,进入一个不同的房间,会在大脑中产生一个 "心理障碍",这意味着走过开放的门会重置记忆,为创造一个新的情节腾出空间。这一般被称为 "门路效应"。
不客气。
在航班上最后一分钟办理登机手续
我已经数不清有多少次在航班上为确保我想要的座位而额外付费。我了解到。
在网上办理登机手续时,许多航空公司会 "随机 "分配乘客的座位,中间的座位往往会先被分配,这样乘客就会被诱惑着花额外的钱来改变他们的座位- 彼得-达菲
这对我来说很有意义。我将在大流行病结束后尝试这样做。哈!
Keynote中的代码动画
苹果公司的Keynote应用程序是引人注目的。如果你不知道如何使用它或用它做什么,它似乎就不那么引人注目了。我学会了如何在Keynote中为代码制作动画。我花了大约30分钟上网搜索,并花了两个小时的时间练习,才掌握了在Keynote中制作动画的技巧。
这是我用Keynote制作的一个动画:
在写另一篇关于method_missing的文章时,我陷入了动画而不是真正的写作,但这就是为什么你应该养成在覆盖method_missing时定义response_to_missing? 的习惯。我将在与拖延症的战斗胜利后分享这篇文章。pic.twitter.com/28tR74AACe
- Emmanuel Hayford (@siaw23)2021年1月11日
像这样花哨的幻灯片动画可以成为一种有效的教学方式。我很满足我学到了这个。
XML炸弹或亿万笑料攻击
这些天,JSON和YAML已经接管了几十年前XML的天下。现在只有少数机器使用XML来编码数据。XML在数据编码或配置方面的受欢迎程度下降,并不意味着网络服务器停止解析它。
所有的网络服务器都解析XML,这意味着有一个攻击矢量需要缓解。
有两种描述XML结构的主要方式:
- 文档类型定义(DTD)
- XML Schema Definition(XSD)
XSD更现代,更有表现力,描述了更广泛的XML文档。我检查了Nokogiri使用这两种方式中的哪一种,没有看到任何DTD跟踪;这很好,因为基于DTD的解析器可能容易受到XML炸弹的攻击。
XML炸弹使用内联的DTD来炸毁XML解析器的内存用量,使服务器崩溃。
Facebook抓紧时间
我了解到Facebook通过在发展中国家提供 "免费互联网 "来保持相关性的努力。
也许他们不想像MySpace或Hi5那样消亡。在发达国家,Facebook的新会员数量已经饱和,现在他们想通过获得新的用户来保持活力,这相当于为广告提供更多的数据。
他们在一段时间内仍有一些能量。但没有人知道会有多长时间。
2020年,我为自己做的最好的事情之一就是退出Facebook。撇开隐私问题不谈,说实话,我在Facebook中找不到任何价值。