给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
第1篇 基础知识
第1章 Node.js环境搭建 2
视频讲解:35分钟
1.1 认识Node.js 2
1.1.1 什么是Node.js 2
1.1.2 Node.js的工作原理 4
1.1.3 Node.js的优缺点 5
1.1.4 Node.js能做什么 5
1.1.5 谁在使用Node.js 6
1.2 Node.js的下载与安装 6
1.2.1 下载并安装Node.js 6
1.2.2 测试Node.js是否安装成功 9
1.3 熟悉WebStorm开发工具 10
1.3.1 WebStorm的下载 10
1.3.2 WebStorm的安装 11
1.3.3 WebStorm首次加载配置 12
1.3.4 WebStorm功能区预览 16
1.3.5 WebStorm中英文对照菜单 16
1.3.6 工具栏 18
1.3.7 常用快捷键 18
1.4 要点回顾 19
第2章 第一个Node.js服务器程序 20
视频讲解:6分钟
2.1 使用WebStorm创建第一个Node.js程序 20
2.2 在WebStorm中运行Node.js程序 23
2.3 使用cmd命令运行Node.js程序 25
2.4 解决Node.js程序输出中文时出现乱码的问题 26
2.5 要点回顾 27
第3章 npm包管理器的使用 28
视频讲解:8分钟
3.1 npm包管理器基础 28
3.1.1 npm概述 28
3.1.2 查看npm的版本 29
3.1.3 常用npm软件包 30
3.2 package.json基础 32
3.2.1 认识package.json 32
3.2.2 npm中的package-lock.json文件 34
3.3 使用npm包管理器安装包 36
3.3.1 安装单个软件包 36
3.3.2 安装软件包的指定版本 38
3.3.3 安装所有软件包 39
3.3.4 更新软件包 41
3.3.5 指定npm软件包的安装位置 41
3.3.6 卸载npm软件包 42
3.4 要点回顾 43
第4章 Node.js基础 44
视频讲解:34分钟
4.1 Node.js全局对象 44
4.1.1 全局变量 44
4.1.2 全局对象 45
4.1.3 全局函数 49
4.2 模块化编程 51
4.2.1 exports对象 51
4.2.2 module对象 52
4.3 要点回顾 53
第5章 事件的监听与触发 54
视频讲解:21分钟
5.1 EventEmitter对象 54
5.2 添加和触发监听事件 57
5.2.1 添加监听事件 57
5.2.2 添加单次监听事件 59
5.2.3 触发监听事件 60
5.3 删除监听事件 61
5.4 要点回顾 63
第2篇 核心技术
第6章 util工具模块 66
视频讲解:3分钟
6.1 util模块概述 66
6.2 util模块的使用 67
6.2.1 格式化输出字符串 67
6.2.2 将对象转换为字符串 68
6.2.3 实现对象间的原型继承 69
6.2.4 转换异步函数的风格 70
6.2.5 判断是否为指定类型的内置对象 70
6.3 要点回顾 73
第7章 fs文件系统模块 74
视频讲解:47分钟
7.1 文件的读取与写入 74
7.1.1 检查文件是否存在 74
7.1.2 文件读取 77
7.1.3 文件写入 79
7.1.4 文件操作时的异常处理 82
7.2 文件操作 83
7.2.1 截断文件 83
7.2.2 删除文件 84
7.2.3 复制文件 85
7.2.4 重命名文件 87
7.3 目录操作 88
7.3.1 创建目录 88
7.3.2 读取目录 91
7.3.3 删除空目录 91
7.3.4 查看目录信息 92
7.3.5 获取目录的绝对路径 94
7.4 要点回顾 95
第8章 os操作系统模块 96
视频讲解:2分钟
8.1 获取内存相关信息 96
8.1.1 获取系统剩余内存 96
8.1.2 获取系统总内存 97
8.2 获取网络相关信息 98
8.3 获取系统相关目录 99
8.3.1 获取用户主目录 99
8.3.2 获取临时文件目录 99
8.4 获取系统相关信息 100
8.5 os模块常用属性 106
8.6 要点回顾 107
第9章 异步编程与回调 108
视频讲解:31分钟
9.1 同步和异步 108
9.2 回调函数 110
9.3 使用async/await的异步编程 112
9.3.1 Promise基础 112
9.3.2 为什么使用async/await 115
9.3.3 async/await的使用 116
9.3.4 使用async/await异步编程的优点 118
9.4 要点回顾 118
第10章 I/O流操作 119
视频讲解:71分钟
10.1 流简介 119
10.1.1 流的基本概念 119
10.1.2 了解Buffer 120
10.2 可读流的使用 120
10.2.1 流的读取模式与状态 120
10.2.2 可读流的创建 121
10.2.3 可读流的属性、方法及事件 121
10.2.4 可读流的常见操作 123
10.3 可写流的使用 127
10.3.1 可写流的创建 127
10.3.2 可写流的属性、方法及事件 128
10.3.3 可写流的常见操作 129
10.4 双工流与转换流介绍 132
10.4.1 双工流 132
10.4.2 转换流 133
10.5 要点回顾 135
第3篇 高级应用
第11章 Web应用构建基础 138
视频讲解:97分钟
11.1 Web应用开发基础 138
11.1.1 请求与响应 138
11.1.2 客户端与服务器端 139
11.2 url和querystring模块 141
11.2.1 url模块 141
11.2.2 querystring模块 142
11.3 http模块 143
11.3.1 server对象 143
11.3.2 response对象 144
11.3.3 request对象 149
11.4 path模块 152
11.4.1 绝对路径和相对路径 152
11.4.2 path模块的常见操作 153
11.4.3 path模块的属性 161
11.5 要点回顾 161
第12章 WebSocket网络编程 162
视频讲解:41分钟
12.1 WebSocket网络编程的基本实现 162
12.1.1 WebSocket服务器端实现 163
12.1.2 WebSocket客户端实现 164
12.1.3 服务器端和客户端的通信 166
12.2 socket数据通信类型 169
12.2.1 public通信类型 169
12.2.2 broadcast通信类型 172
12.2.3 private通信类型 174
12.3 客户端分组的实现 177
12.4 项目实战—聊天室 182
12.4.1 服务器端实现 182
12.4.2 客户端实现 183
12.4.3 运行项目 185
12.5 要点回顾 185
第13章 Web模板引擎 186
视频讲解:33分钟
13.1 ejs模块 186
13.1.1 ejs模块的渲染方法 186
13.1.2 ejs模块的数据传递 191
13.2 pug模块 194
13.2.1 pug文件基本语法 194
13.2.2 pug模块的渲染方法 199
13.2.3 pug模块的数据传递 201
13.3 要点回顾 203
第14章 Express框架 204
视频讲解:102分钟
14.1 认识express模块 205
14.1.1 express模块的基本使用步骤 205
14.1.2 express模块中的响应对象 205
14.1.3 express模块中的请求对象 207
14.2 express模块中间件 208
14.2.1 认识中间件 208
14.2.2 router中间件 209
14.2.3 static中间件 210
14.2.4 cookie parser中间件 211
14.2.5 body parser中间件 213
14.3 实现RESTful Web服务 216
14.4 express-generator模块 219
14.4.1 创建项目 219
14.4.2 设置项目参数 221
14.4.3 express-generator模块应用 222
14.5 Koa框架基础 228
14.5.1 认识Koa框架 228
14.5.2 Koa框架的基本使用 228
14.6 项目实战—选座购票 230
14.7 要点回顾 235
第15章 数据存储之MySQL数据库 236
视频讲解:39分钟
15.1 MySQL数据库的下载和安装 236
15.1.1 数据库简介 236
15.1.2 下载MySQL 237
15.1.3 安装MySQL 238
15.1.4 配置MySQL环境变量 245
15.1.5 启动MySQL 247
15.1.6 使用Navicat for MySQL管理软件 248
15.2 MySQL数据库操作基础 250
15.2.1 认识SQL语言 250
15.2.2 数据库操作 250
15.2.3 数据表操作 252
15.2.4 数据的增删改查 257
15.3 在Node.js中操作MySQL数据库 262
15.3.1 Node.js中的mysql模块 262
15.3.2 Node.js中对MySQL实现增删改查操作 267
15.4 要点回顾 274
第16章 数据存储之MongoDB数据库 275
视频讲解:47分钟
16.1 MongoDB数据库的下载、安装与配置 275
16.1.1 关系型数据库与非关系型数据库 276
16.1.2 下载MongoDB数据库 276
16.1.3 安装MongoDB数据库 277
16.1.4 配置并测试MongoDB数据库 279
16.2 MongoDB数据库基本操作 282
16.2.1 使用JavaScript语言 282
16.2.2 数据库、集合与文档 283
16.2.3 添加数据 284
12.2.4 查询数据 285
16.2.5 修改数据 286
16.2.6 删除数据 287
16.3 项目实战—心情日记 287
16.3.1 Node.js中的mongojs模块 288
16.3.2 初始化数据 289
16.3.3 主页的实现 290
16.3.4 添加日记 291
16.3.5 修改日记 293
16.3.6 删除日记 294
16.3.7 用户登录与退出 295
16.4 要点回顾 297
第17章 程序调试与异常处理 298
视频讲解:20分钟
17.1 使用console.log()方法调试程序 298
17.2 使用WebStorm调试程序 299
17.2.1 插入断点 299
17.2.2 删除断点 300
17.2.3 禁用断点 301
17.2.4 断点调试 302
17.3 Node.js程序异常处理 303
17.3.1 使用throw关键字抛出异常 303
17.3.2 Error错误对象 304
17.3.3 使用try…catch语句捕获异常 305
17.3.4 异步程序中的异常处理 306
17.4 要点回顾 307
第4篇 项目实战
第18章 在线五子棋游戏 310
视频讲解:33分钟
18.1 需求分析 310
18.2 游戏设计 311
18.2.1 游戏功能结构 311
18.2.2 游戏业务流程 311
18.2.3 游戏预览 312
18.3 游戏开发准备 313
18.3.1 游戏开发环境 313
18.3.2 游戏项目构成 314
18.4 登录游戏房间设计 314
### 如何自学黑客&网络安全
#### 黑客零基础入门学习路线&规划
**初级黑客**
**1、网络安全理论知识(2天)**
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
**2、渗透测试基础(一周)**
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
**3、操作系统基础(一周)**
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
**4、计算机网络基础(一周)**
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
**5、数据库基础操作(2天)**
①数据库基础
②SQL语言基础
③数据库安全加固
**6、Web渗透(1周)**
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
如果你想要入坑黑客&网络安全,笔者给大家准备了一份:282G全网最全的网络安全资料包评论区留言即可领取!
**7、脚本编程(初级/中级/高级)**
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
如果你零基础入门,笔者建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习;搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime;·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;·用Python编写漏洞的exp,然后写一个简单的网络爬虫;·PHP基本语法学习并书写一个简单的博客系统;熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选);·了解Bootstrap的布局或者CSS。
**8、超级黑客**
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,附上学习路线。
![img](https://img-blog.csdnimg.cn/img_convert/3fd39c2ba8ec22649979f245f4221608.webp?x-oss-process=image/format,png)
#### 网络安全工程师企业级学习路线
![img](https://img-blog.csdnimg.cn/img_convert/931ac5ac21a22d230645ccf767358997.webp?x-oss-process=image/format,png)
如图片过大被平台压缩导致看不清的话,评论区点赞和评论区留言获取吧。我都会回复的
视频配套资料&国内外网安书籍、文档&工具
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。
![img](https://img-blog.csdnimg.cn/img_convert/153b2778a3fe5198265bed9635d63469.webp?x-oss-process=image/format,png)
一些笔者自己买的、其他平台白嫖不到的视频教程。
![img](https://img-blog.csdnimg.cn/img_convert/32eb4b22aa740233c5198d3c161b37e8.webp?x-oss-process=image/format,png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**