从零开始学习 Web 安全与黑客技术入门指南
引言:理解黑客精神与伦理
对于很多人来说,"黑客"是一个神秘的代名词。加之影视作品夸张的艺术表现,使得这个原本专注于技术的群体散发出亦正亦邪的神秘色彩。
黑客源自英文 Hacker 一词,最初指热心于计算机技术、水平高超的电脑高手,尤其是程序设计人员。 随着时间推移,根据行为动机和道德标准,逐渐区分为白帽、灰帽、黑帽等。
- 白帽黑客(White Hat):被称为道德黑客。他们不会非法入侵用户网络,而是通过一系列测试检查公司安全系统的效率,帮助修复漏洞,维护网络安全。
- 黑帽黑客(Black Hat):恰好与白帽黑客相反,往往为了个人利益去破坏用户网络数据,实施网络犯罪,如窃取隐私、勒索软件等。
- 灰帽黑客(Grey Hat):同时拥有白帽和黑帽的属性,有时在未经授权的情况下测试系统,但通常不造成严重破坏,围绕利益寻找足够的补偿或曝光漏洞。
如果是想利用学到的技术非法牟利,奉劝尽早放弃。 君子爱财取之有道,想成为一名合格的白帽黑客,必须遵守法律底线和'江湖规矩',坚持合法合规的安全测试原则。

Web 架构与数据传输流程
早期的互联网非常单调,一般只有静态页面。现在,随着技术的发展,Web 上大多数站点实际上是 Web 应用程序,在服务器和浏览器之间进行双向的信息传递。它们支持注册登录、金融交易、搜索及用户创作的内容。用户只需要拥有一个浏览器,就能实现各种功能。
Web 是指一个网站的前端页面到后端服务,比如我们常见的 JavaScript、PHP、Python、MySQL、jQuery、Docker 等,包括开发、运维这些服务。
所以 Web 安全也就是从安全的角度探索 Web 的一种方式。为了能够更简单地理解一些常见漏洞,我们需要先了解数据的传输过程。
1. 客户端(Browser)
浏览器即客户端,提供客户端和服务器端的数据信息交互。它负责渲染 HTML/CSS/JS,并向服务器发送 HTTP 请求。
2. 协议层(HTTP)
客户端与 Web 服务器进行交互时就存在 Web 请求,这种请求都基于统一的应用层协议——HTTP 协议来交互数据。HTTP 属于轻量级协议,无需连接(无状态),提供了对通信错误的容错性。HTTPS 则在此基础上增加了 SSL/TLS 加密层。
3. 中间件(Middleware)
中间件是位于平台(硬件和操作系统)和应用之间的通用服务。例如 Nginx、Apache 等反向代理服务器,或者 Redis、Kafka 等缓存消息队列服务,它们处理请求分发、负载均衡和数据缓冲。
4. 服务器容器(Server Container)
Server 容器负责解析用户请求和脚本语言,类似的有 Tomcat、JBoss、Node.js 进程等。我们访问网页看到是 Web 容器处理后的内容。
5. 数据库(Database)
动态页面可提供交互式的信息查询服务,主要依赖于 Web 数据库的实现,对外提供包含表单的 Web 页面作为访问接口,查询结果也以包含数据列表的 Web 页面形式返回给用户。
当然除了这些数据也有可能流向不可见的第三方服务商。
下图展示了数据的传输流程,以及不同阶段经常出现的漏洞及其原因:

常见 Web 漏洞详解
我们常见的 Web 漏洞类型主要有 SQL 注入、XSS、远程命令执行以及越权等。以下分别用举例的形式为大家介绍这几种漏洞及其防御方法。



