
1.1. 万维网的诞生于1989年
1.1.1. 在日内瓦附近的欧洲物理研究中心(CERN)工作的英国计算机科学家蒂姆·伯纳斯-李(Tim Berners-Lee),为便于通过互联网共享科学文献和研究结果而创建了一个系统
1.1.2. 包括URL、HTTP和HTML,以及一个只能用文本模式查看可用资源的客户端
1.2. 1990年以来,万维网从无到有,发展到如今成为我们生活中的关键一部分
1.3. 互联网最常见到的面孔就是万维网(World Wide Web),或者现在常简称为Web
1.4. 互联网是一种通信基础设施或基板,它可以让全世界数百万台计算机轻松地彼此交换信息
1.5. 万维网连接着提供信息和请求信息的计算机,提供信息的叫服务器,请求信息的叫客户端
1.6. 万维网使用互联网建立连接和承载信息,并为互联网支持的其他服务提供接口
1.7. URL
1.7.1. Uniform Resource Locator,统一资源定位符
1.7.2. 用于指定要访问信息源的名称
1.7.3. URL自身编码了信息
1.7.3.1. 第一部分“http”是协议名,可能采用好几种协议
1.7.3.2. https表示采用经过加密的HTTP协议的安全版本
1.8. HTTP(HyperText Transfer Protocol,超文本传输协议)
1.8.1. HTTP客户端请求某个特定的URL,而服务器返回客户端请求的信息
1.9. HTML
1.9.1. HyperText Markup Language,超文本标记语言,描述服务器返回信息的格式或表现形式
1.9.2. HTML同样很简单,你只需知道很少的知识就能使用它
1.9.3. 服务器返回的通常是HTML文件,其中包含了内容和格式信息
1.9.4. HTML最初的设计仅仅处理纯文本从而显示在浏览器中
1.10. 一种从客户端(你的浏览器)向服务器传递信息的机制,叫作通用网关接口(Common Gateway Interface, CGI)
1.11. 浏览器,即运行在你计算机上的Chrome、Firefox、Safari或者Edge等程序,它使用URL和HTTP向服务器发送请求,然后读取并显示服务器返回的HTML
1.12. 世界上第一个图形界面的浏览器Mosaic是由伊利诺伊大学的一群学生开发的
1.12.1. Mosaic的首个版本发布于1993年2月
1.13. 1994年第一个商业浏览器Netscape Navigator面世
1.13.1. Netscape Navigator是早期的成功者,而那时微软对互联网的蓬勃发展毫无意识
1.14. Web技术的发展,由万维网联盟(World Wide Web Consortium,W3C,其网站为w3.org)这个非营利机构管理
2. cookie2.1. HTTP协议是无状态的
2.2. 无状态的意思是,HTTP服务器不必记住不同客户端发送的请求,只要向客户端返回了请求的页面,它就可丢弃有关每次信息交换的全部记录
2.3. 1994年,Netscape公司发明了一种叫cookie的解决方案
2.4. 每个cookie都有名字,一台服务器可以为一次访问存储多个cookie
2.5. cookie不是程序,也不包含动态内容
2.6. 它是完全被动的,cookie只是一串存储在浏览器中供以后返回服务器的字符,只有来自服务器的内容才能返回到该服务器
3. 动态网页3.1. 万维网最初被设计的时候并没有特别利用客户端是一台功能强大的计算机、一个通用可编程设备这一事实
3.2. Netscape Navigator的早期版本提供了一种可以在浏览器中运行Java程序的方法
3.3. 1995年,Netscape还推出了一种专用于其浏览器的新语言JavaScript
3.4. 像NoScript和Ghostery这样的浏览器插件可以控制JavaScript代码可执行的功能
3.4.1. 有点讽刺的是,插件本身就是用JavaScript编写的
3.5. 长期以来Flash一直存在重大的安全漏洞,现在已不再使用
3.6. HTML5为浏览器带来了新功能,可以减少对插件的依赖,尤其是在视频和图形方面
3.7. 网页信标
3.7.1. 1×1的透明像素
4. 病毒、蠕虫和木马4.1. 在互联网广泛使用之前,软盘是在PC之间交换程序和数据的标准介质
4.2. 很多年来,病毒一般是通过被传染的软盘传播
4.3. 2010年底,一个叫“震网”(Stuxnet,也称为“超级工厂”)的复杂蠕虫出现在过程控制计算机中,它的主要攻击目标是伊朗的铀浓缩设备
4.4. 特洛伊木马(在网络安全的语境中,通常简称木马)是伪装成有益或至少无害的,但实际上有害的程序
5. Web安全5.1. 对客户端的攻击
5.1.1. 对你的攻击不仅包括垃圾邮件、跟踪等惹人讨厌的攻击,更严重的是还包括泄露你的信用卡和银行账号,或者密码等私密信息,这使得别人可以冒充你
5.1.2. 通过禁用第三方cookie,以及使用浏览器插件来禁止跟踪程序、关闭JavaScript等,就可以减少跟踪攻击
5.1.3. 垃圾邮件
5.1.3.1. 垃圾邮件过滤是机器学习(machine learning)的一个主要应用
5.1.3.2. 垃圾邮件(Spam)是不请自来的邮件,其内容通常是发家致富计划、股票信息、身体部位改善、性能改进以及大量其他不需要的商品和服务
5.1.3.3. 垃圾邮件仿佛是军备竞赛,因为当防御者学会如何对付一种垃圾邮件时,攻击者就会找到新的方法
5.1.4. 网络钓鱼
5.1.4.1. phishing
5.1.4.2. 通过骗取收件人的信任,让他们主动奉上窃贼需要的信息
5.1.4.3. 尼日利亚骗局
5.1.5. 鱼叉式网络钓鱼(spear phishing)
5.1.5.1. 鱼叉式网络钓鱼是一种社会工程:谎称有一个共同的朋友这样的私人关系,或声称在同一家公司工作,来诱使受害者做一些愚蠢的事情
5.1.6. 间谍软件
5.1.6.1. spyware
5.1.6.2. 指运行在你的计算机上、把你的信息发往别处的程序
5.1.7. 僵尸(zombie)程序
5.1.7.1. 平时潜伏着,一旦控制者从互联网发来指令,就会被唤醒并执行诸如发送垃圾邮件等恶意行为
5.1.7.2. 由它们组成的具有共同控制的网络被称为僵尸网络(botnet)
5.1.8. 勒索软件
5.1.8.1. ransomware
5.1.9. 恐吓软件
5.1.9.1. scareware
5.1.10. 在手机上,最大的风险是下载会导出你个人信息的应用程序
5.1.10.1. 一款应用程序可以获取手机上的所有信息,包括联系人、位置数据和通话记录,并可以很容易地利用这些信息来对付你
5.2. 对服务器的攻击
5.2.1. SQL注入(SQL injection)就是一种常见的针对服务器的攻击
5.2.2. 拒绝服务攻击(Denial of Service, DoS)
5.2.2.1. 发起者把大量网络流量引导到一个网站,利用密集的访问使其停止响应
5.2.2.2. 拒绝服务攻击通常精心策划,利用僵尸网络来完成
5.2.2.3. 在2020年2月,亚马逊的AWS云服务成功地应对了它所说的有史以来最大的DDoS攻击,峰值流量速率为2.3Tbps
5.3. 对传输中信息的攻击
5.3.1. HTTPS是HTTP的一个版本,它对TCP/IP通信进行双向加密,这使得窃听者不可能读取内容或伪装成其中一方
5.3.2. 中间人攻击
5.3.2.1. 攻击者拦截传输中的消息,并按自身需要加以修改后发出去,该消息看起来是直接来自源头的
5.3.3. 虚拟专用网络(Virtual Private Network, VPN)在两台计算机间建立起加密的通道,以保证其间双向通信的安全
5.3.4. 所有通信进行端到端的加密,也就是说,它是在发送端进行加密,在接收端解密,使用的密钥仅存在于两个端点,不是在服务提供者的手中,所以原则上没有人可以偷听或进行中间人攻击
5.3.4.1. Signal是开源软件
6. 自我防御6.1. 谨慎选择密码,让别人不会猜出来,即使用电脑反复尝试也不至于马上就被破解
6.1.1. 由几个单词组成的短语,包括大小写字母、数字和特殊字符,是安全性和易用性之间的一种适当折衷
6.1.2. 频繁的更改可能会适得其反,尤其是在不方便的时候强加给你
6.1.2.1. 显然会鼓励公式化的更改,比如增加最后一个数字的大小
6.1.3. LastPass这样的密码管理器,可以为你的所有网站生成和存储安全的随机密码,你只需要记住一个主密码
6.1.3.1. 如果你忘记了密码,或者持有密码的公司或软件被泄露或被胁迫,就会出现单点故障问题
6.2. 双因子身份验证
6.2.1. 双因子不仅需要用户知道某些信息(密码),还需要拥有某些实物(设备)
6.2.2. 制造出被广泛使用的双因子认证设备SecurID的RSA公司在2011年3月遭遇入侵,安全信息失窃,从而使某些SecurID设备不再安全
6.3. 不要用开放的无线网络做重要的事
6.3.1. 保证用HTTPS连接无线网络,但别忘了HTTPS只加密内容
6.3.2. 数据传输路径上的每个人都知道发送者和接收者;这种元数据在确定人员身份时非常有用
6.4. 安装防毒软件并保持更新
6.5. 定期将你的信息备份到一个安全的地方
6.5.1. 定期备份数据是一个明智的做法,如果一个硬盘坏了,或者恶意软件破坏了磁盘,或者被加密勒索,提前做了备份会让你开心得多
6.6. 谨慎行事
6.6.1. 关闭第三方cookie
6.6.2. 使用像Adblock Plus、uBlock Origin和Privacy Badger这样的插件来拒绝广告和跟踪,以及它们可能植入的恶意软件
6.6.3. 打开隐私浏览或隐身模式,并在每次会话结束时删除cookie,不过这只会影响你自己的电脑,你仍然可能在网上被跟踪
6.6.4. “禁止跟踪”的设置没有多大用处,反而会让你更容易被识别
6.6.5. 关闭手机的定位服务,除非你需要地图或导航
6.6.6. 在邮件阅读器中禁用HTML和JavaScript
6.6.7. 关掉不用的操作系统服务
6.6.8. 打开你计算机中的防火墙
6.6.8.1. 防火墙是一个程序,监视传入和传出的网络连接,并阻止那些违反访问规则的连接
6.6.9. 使用密码锁定你的手机和笔记本电脑
6.7. 给多疑者的建议
6.7.1. 在浏览器中使用NoScript来减少JavaScript的使用
6.7.2. 关闭除显式列在白名单中的网站外的所有cookie
6.7.3. 使用假的电子邮件地址临时注册
6.7.4. 当你不使用手机的时候,关闭它
6.7.5. 使用Tor浏览器进行匿名浏览
6.7.6. 使用Signal、WhatsApp或iMessage进行安全通信