XSS-and-CSRF

今天我们来了解一下常见的 2 种网站安全攻击—— XSS 和CSRF。

什么是XSS

XSS(cross site scripting),意思是跨站点脚本,是一种攻击者在另一个用户的浏览器中执行恶意脚本的攻击方式。
攻击者并不直接锁定攻击者,而是利用一个用户可能会访问的存在漏洞的网站,通过这个网站间接地进行攻击。对于浏览器而言,攻击者注入的脚本看上去就是正常网站的一部分。那到底什么样的脚本是恶意脚本?

从 viewport 起谈谈移动端布局

背景

早期的网站都是适应于 PC 端浏览器的,在移动端打开的时候,页面会被缩小,用户体验很不好。于是,Mobile Safari引入了「viewport 元标签」来让我们可以控制页面显示的尺寸和视口,如今其它移动端浏览器也支持了这个标签。在学习 viewport 之前,我们先了解一些概念。

JS的深复制和浅复制

这里我们讨论一下JS的复杂引用类型的复制,不讨论简单数据类型的复制。 因为简单数据类型的值存在栈中,不存在引用值的情况。
对象的实例是存储在堆内存中,我们通过一个引用值去操作对象,所以在复制对象的时候就存在两种情况了:复制引用和复制实例。这就是深复制和浅复制的区别。

什么是HTTPS

我们都知道,HTTP(超文本传输协议)是一种建立在 TCP/IP 协议之上的通信协议,用于 web 客户端和服务器之间进行通信。而 HTTP 本身是明文传输的,没有经过任何安全处理,这样没有加密的通信会有一定的风险,比如:

1. 通信使用明文(不加密),内容可能被窃听
2. 不验证通信方的身份,可能遭遇伪装
3. 无法证明报文的完整性,内容可能已遭篡改

为了解决以上问题,网景在1994年创建了HTTPS(安全超文本传输协议),并应用在网景导航者浏览器中。

debounce-and-throttle

平时 coding 的时候总是会用到这两个函数,但是一直没有仔细研究过它们俩到底有什么区别,最近抽空学习了一下 lodash 中这两个函数的源码,以下是这次学习的总结。