去年下半年,也就是2018年的下半年以来,一直想开始Web安全方面的学习。但是由于个人原因和工作原因,一直没有着手进行。趁着今年开年事情还不是很多,先把学习的习惯养成了,相信后面会越学越好。
那么,要学习Web安全,必须地了解什么是Web,不然谈何安全。正如做安全解决方案,如果对用户的业务都不了解,业务数据的流向也不清楚,是无法设计出符合用户实际需求的解决方案的,更多地是一种通用性的解决方案,也就体现不出你个人的价值。Web安全的学习是为了测试Web业务的安全性或者说针对Web业务提出安全加固的建议。因此必须了解Web的基础知识。
0x01 Web 2.0工作流程
Web 1.0是Web应用最开始的应用方式,采用的是一种静态页面的方式,没有加入动态脚本以及装饰样式。但是目前互联网上的网站基本都是采用Web 2.0的架构进行部署和运作的。这也就说明了要学习Web安全,必须先得了解Web 2.0的工作流程,包括的组件有哪些,是如何协调工作的。在此基础上,再去探讨Web流程中哪些部分存在脆弱性,以及相应的解决方案有哪些,哪些相对比较有优势。
那么Web 2.0的架构包含哪些组件呢?不知各位是否听过LAMP、LNMP等等组合,其实讲的都是web 2.0的架构。也就是说包含的组件有操作系统、Web容器、数据库以及动态脚本语言。LAMP分别对应的是Linux操作系统、Apache容器、MySQL数据库以及PHP动态脚本语言,LNMP中的N这是Nginx方向代理容器。
那么上面提及的四部分组件是如何进行组织和工作的呢?其实,四部分组件是服务器端的主要组成部分,Web服务中完整的业务流程肯定需要客户端的参与,客户端一般是浏览器。以上四个组件也可以通过不同类型的组件进行组合,操作系统可以用Unix、Windows、Linux,其他也是类似。主要的工作流程是客户端到服务器端。
1、用户通过浏览器访问目标服务;
2、目标Web服务器接收请求,请求动态脚本文件如PHP;
3、脚本语言通过解释器执行,连接数据库获取对应的数据,解析为HTML语言;
4、浏览器获取HTTP协议传输的HTML语言后通过运行JS语言与CSS语言之后展示给用户。
大体流程如下图所示:
![](https://img.haomeiwen.com/i2505764/7739d8915a1664c8.png)
0x02 Web常见问题
前面其实也说了,Web服务由客户端和服务端组成。所以Web问题也就伴随出现在这连个部分,服务器端问题与客户端问题,当然,在服务器端会出现的问题在客户端同样也会出现类似的问题,但是原理与危害可能不大相同。
对于服务器端的问题,更多针对的是通过Web漏洞去获取或篡改后端数据库的数据,或者篡改Web网站的内容,导致不良的影响。对于客户端的问题更多是盗取用户凭证,造成个人隐私泄露,导致个人资产损失。
具体的问题以及造成问题的漏洞后面通过单独的篇幅进行介绍。不过主要是服务器端的漏洞,客户端的漏洞造成的问题影响相对于服务器端造成的影响而言,小很多。
网友评论