【文末送书】今天推荐一本网络安全领域优质书籍。
正文
学习Web安全离不开Web,那么,需要先来学习网站的搭建。搭建网站是每一个Web安全学习者的必经之路。因为,Web安全研究的主体就是网站。这一点包括了以下几个方面。
(1)研究不同的网站环境是否存在漏洞
这又包括了以下三个方面。
1)研究网站搭建使用的相关软件、中间件、数据库、其他服务是否存在通用的漏洞。
2)研究网站在运维阶段所下发和修改的配置是否会引起新的漏洞。
3)研究网站所在环境中的边界安全是否具有抵御攻击的能力,包括在网络环境中部署网络安全防护设备及监控设备,在主机层面加装安全产品和监控软件。部署哪些防护和监控产品,如何整体架构,这是每一个企业的安全管理者需要学习的一个课题。
(2)研究不同的网站实现的代码是否存在漏洞
网站代码在开发过程中是否存在一些通用的编码缺陷?如果存在,可能会造成SQL注入漏洞、XSS漏洞等。除此以外,在部分功能的设计上,是否存在逻辑漏洞?该内容会在逻辑漏洞章节中详细讨论。
(3)研究网站的用户访问网站过程中是否会受攻击
而这一点是研究网站的用户,研究主体看似不再是网站,而是人,但实际上还是围绕网站来展开的。人都会有弱点,比如众所周知的弱口令问题,就是来源于人性的惰性。还有,关于人眼视觉上的欺骗,这一点会在ClickJacking漏洞一节中为大家呈现。
以上三点的研究共同构成了Web安全研究的主要内容,它们都统一于“建设更安全的互联网,保护网站经营者以及网民合法利益不受侵犯”这一中心思想的内涵之上。
既然网站对于Web安全如此之重要,所以很有必要学习一个网站的搭建。接下来就以LAMP为例来进行网站搭建的介绍。
LAMP是指“Linux+Apache+MySQL+PHP”。这是过去比较经典的网络架构,即把Apache、MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言所解释的一个网站服务。PHP、ASP、JSP三者是早期网站流行架构中最常用的脚本语言,在这之前还有C/C++、VBScript等。在Web技术飞速发展的今天也产生了很多新的脚本语言,如:NodeJS、Python、Lua、Ruby、GoLang等,LAMP技术使用的是PHP语言。Apache是最常用的开源Web服务软件之一。MySQL是较为流行的数据库软件,早期开源目前已被Oracle收购。
LAMP的整体架构如图1所示。