程序员必知的10个网络安全知识点!
1、什么是SQL注入攻击
概述
攻击者在 HTTP 请求中注入恶意的 SQL 代码,服务器使用参数构建数据库 SQL 命令时,恶意SQL 被一起构造,并在数据库中执行。
注入方法
用户登录,输入用户名 lianggzone,密码 ‘ or ‘1’=’1 ,如果此时使用参数构造的方式,就会出现
select * fromuserwherename = ‘lianggzone’ andpassword = ‘’ or ‘1’=‘1’
不管用户名和密码是什么内容,使查询出来的用户列表不为空。如何防范 SQL 注入攻击使用预编译的 PrepareStatement 是必须的,但是一般我们会从两个方面同时入手。
Web端预防
- 有效性检验。
- 限制字符串输入的长度。
服务端预防
- 不用拼接 SQL 字符串。
- 使用预编译的 PrepareStatement。
- 有效性检验。(为什么服务端还要做有效性检验?第一准则,外部都是不可信的,防止攻击者绕过 Web 端请求)
- 过滤 SQL 需要的参数中的特殊字符。比如单引号、双引号。
2、什么是XSS攻击
概述
跨站点脚本攻击,指攻击者通过篡改网页,嵌入恶意脚本程序,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。
如何防范XSS攻击
- 前端,服务端,同时需要字符串输入的长度限制。
- 前端,服务端,同时需要对 HTML 转义处理。将其中的”<”,”>”等特殊字符进行转义编码。
预防XSS 的核心是必须对输入的数据做过滤处理。
3、CSRF攻击
概述
跨站点请求伪造,指攻击者通过跨站请求,以合法的用户的身份进行非法操作。可以这么理解 CSRF 攻击:攻击者盗用你的身份,以你的名义向第三方网站发送恶意请求。CRSF 能做的事情包括利用你的身份发邮件,发短信,进行交易转账,甚至盗取账号信息。
如何防范CSRF攻击
- 安全框架,例如 Spring Security。
- token机制:在 HTTP 请求中进行 token 验证,如果请求中没有 token 或者 token 内容不正确,则认为 CSRF 攻击而拒绝该请求。
- 验证码:通常情况下,验证码能够很好地遏制 CSRF 攻击,但是很多情况下,出于用户体验考虑,验证码只能作为一种辅助手段,而不是最主要的解决方案。
- referer 识别:在 HTTP Header 中有一个字段 Referer,它记录了 HTTP 请求的来源地址。如果 Referer 是其他网站,就有可能是 CSRF 攻击,则拒绝该请求。但是,服务器并非都能取到 Referer。很多用户出于隐私保护的考虑,限制了 Referer 的发送。在某些情况下,浏览器也不会发送 Referer,例如 HTTPS 跳转到 HTTP。
- 验证请求来源地址;
- 关键操作添加验证码;
- 在请求地址添加 token 并验证。
4、文件上传漏洞
概述
文件上传漏洞,指的是用户上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力。
许多第三方框架、服务,都曾经被爆出文件上传漏洞,比如很早之前的 Struts2,以及富文本编辑器等等,可被攻击者上传恶意代码,有可能服务端就被人黑了。
如何防范文件上传攻击
- 判断文件类型。在判断文件类型的时候,可以结合使用 MIME Type,后缀检查等方式。因为对于上传文件,不能简单地通过后缀名称来判断文件的类型,因为攻击者可以将可执行文件的后缀名称改为图片或其他后缀类型,诱导用户执行。
- 对上传的文件类型进行白名单校验,只允许上传可靠的类型。
- 上传的文件需要进行重新命名,使攻击者无法猜想上传文件的访问路径,将极大地增加攻击成本,同时向shell.php.rar.ara 这种文件,因为重命名而无法成功实施攻击。
- 限制上传文件的大小。
- 单独设置文件服务器的域名。
5、DDoS攻击
客户端向服务端发送请求链接数据包,服务端向客户端发送确认数据包,客户端不向服务端发送确认数据包,服务器一直等待来自客户端的确认没有彻底根治的办法,除非不使用 TCP

DDos 预防:
- 限制同时打开 SYN 半链接的数目
- 缩短 SYN 半链接的 Time out 时间
- 关闭不必要的服务
6、ARP协议
概述
地址解析协议,即 ARP(Address Resolution Protocol),是根据 IP 地址获取物理地址的一个TCP/IP 协议。
- 发送 ARP 请求的以太网数据帧 广播 到以太网上的每个主机,ARP 请求帧中包含了目的主机的 IP 地址。
- 目的主机收到了该 ARP 请求之后,会发送一个 ARP 应答,里面包含了目的主机的 MAC 地址。
ARP 协议工作原理
- 每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
- 主机(网络接口)新加入网络时(也可能只是 mac 地址发生变化,接口重启等), 会发送免费 ARP 报文把自己 IP 地址与 Mac 地址的映射关系广播给其他主机。
- 网络上的主机接收到免费 ARP 报文时,会更新自己的 ARP 缓冲区。将新的映射关系更新到自己的 ARP 表中。
- 某个主机需要发送报文时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址等。
当本网络的所有主机收到该 ARP 数据包时:
- 首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包。
- 如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖。
- 然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC地址。
源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。ARP 高速缓存(即 ARP 表)是 ARP 地址解析协议能够高效运行的关键
如何防范ARP攻击
1、MAC地址绑定
使网络中每一台计算机的IP地址与硬件地址一一对应,不可更改。
2、使用静态ARP缓存
用手工方法更新缓存中的记录,使ARP欺骗无法进行。
3、使用ARP服务器
通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。
4、使用ARP欺骗防护软件:
如ARP防火墙
5、及时发现正在进行ARP欺骗的主机并将其隔离
6、使用最新版本DNS服务器软件并及时安装补丁
7、关闭DNS服务器的递归功能
DNS服务器利用缓存中的记录信息回答查询请求或是DNS服务器通过查询其它服务器获得查询信息并将它发送给客户机,这两种查询方式称为递归查询,这种查询方式容易导致DNS欺骗。
8、限制区域传输范围
限制域名服务器做出响应的地址、限制域名服务器做出响应的递归请求地址、限制发出请求的地址。
9、限制动态更新
10、采用分层的DNS体系结构
11、检查源代码
如果发生了URL重定向,就一定会发现。不过,检查用户连接的每一个页面的源代码对普通用户来说是不切实际的想法。
12、确保应用有效和能适当地跟踪用户
无论是使用cookie还是会话ID,都应该确保要尽可能的长和随机。
7、RARP工作原理
反向地址转换协议,网络层协议,RARP 与 ARP 工作方式相反。RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。RARP 发出要反向解释的物理地址并希望返回其 IP地址,应答包括能够提供所需信息的 RARP 服务器发出的 IP 地址。
原理:
- 网络上的每台设备都会有一个独一无二的硬件地址,通常是由设备厂商分配的MAC地址。主机从网卡上读取 MAC 地址,然后在网络上发送一个 RARP 请求的广播数据包,请求 RARP服务器回复该主机的 IP 地址。
- RARP 服务器收到了 RARP 请求数据包,为其分配 IP 地址,并将 RARP 回应发送给主机。
- PC1 收到 RARP 回应后,就使用得到的 IP 地址进行通讯。
DNS工作原理
将主机域名转换为 ip 地址,属于应用层协议,使用 UDP 传输。
过程:
总结:浏览器缓存,系统缓存,路由器缓存,IPS 服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。
两种查询方式
-
主机向本地域名服务器的查询一般都是采用递归查询。
-
本地域名服务器向根域名服务器的查询的迭代查询。
-
当用户输入域名时,浏览器先检查自己的缓存中是否有这个域名映射的 ip 地址,如果有解析结束。
-
若没命中,则检查操作系统缓存(如 Windows 的 hosts)中有没有解析过的结果,有解析结束。
-
若无命中,则请求本地域名服务器解析( LDNS)。
-
若 LDNS 没有命中就直接跳到根域名服务器请求解析。根域名服务器返回给 LDNS一个 主域名服务器地址。
-
此时 LDNS 再发送请求给上一步返回的 gTLD( 通用顶级域), 接受请求的 gTLD 查找并返回这个域名对应的 Name Server 的地址
-
Name Server 根据映射关系表找到目标 ip,返回给 LDNS
-
LDNS 缓存这个域名和对应的 ip, 把解析的结果返回给用户,用户根据 TTL 值缓存到本地系统缓存中,域名解析过程至此结束


8、DNS攻击

DNS攻击防范
- 安全更新:及时升级所有相关软件和操作系统补丁,并确保所有设备都有最新版本的安全防护软件。
- 配置正确的权限:只给予必要用户相应权限,并禁止使用弱密码进行登录。
- 加密传输:使用加密技术(例如SSL / TLS)来保护敏感数据在传输过程中不受干扰或泄露。
- 多层次验证机制: 在登录系统前先经过多重身份验证, 以此增强账户安全性
- 增加容错机制: 对于核心业务建立冷备和热备,在一旦发生故障时,可以快速切换到备份系统上,降低业务中断的风险。
9、RIP的工作原理
RIP 动态路由选择协议(网络层协议)
RIP 是一种基于距离矢量(Distance-Vector)算法的协议,它使用跳数(Hop Count)作为度量来衡量到达目的网络的路由距离。RIP 通过 UDP 报文进行路由信息的交换,使用的端口号为 520。
工作原理:
RIP 路由协议用“更新(UNPDATES)”和“请求(REQUESTS)”这两种分组来传输信息的。每个具有 RIP 协议功能的路由器每隔 30 秒用 UDP520 端口给与之直接相连的机器广播更新信息。并且在(用“路程段数”(即“跳数”)作为网络距离的尺度。每个路由器在)给相邻路由器发出路由信息时,都会给每个路径加上内部距离
路由器的收敛机制:
任何距离向量路由选择协议(如 RIP)都有一个问题,路由器不知道网络的全局情况,路由器必须依靠相邻路由器来获取网络的可到达信息。由于路由选择更新信息在网络上传播慢,距离向量路由选择算法有一个慢收敛问题,这个问题将导致不一致性产生。
RIP 较少路由收敛机制带来的问题:
- 记数到无穷大机制:RIP 协议允许最大跳数为 15。大于 15 的目的地被认为是不可达。当路径的跳数超过 15,这条路径才从路由表中删除。
- 水平分割法:路由器不向路径到来的方向回传此路径。当打开路由器接口后,路由器记录路径是从哪个接口来的,并且不向此接口回传此路径。
- 破坏逆转的水平分割法:忽略在更新过程中从一个路由器获取的路径又传回该路由器
- 保持定时器法:防止路由器在路径从路由表中删除后一定的时间内(通常为 180 秒)接受新的路由信息。保证每个路由器都收到了路径不可达信息
- 触发更新法: 当某个路径的跳数改变了,路由器立即发出更新信息,不管路由器是否到达常规信息更新时间都发出更新信息。
RIP的特点
- 由于15跳为最大值,RIP 只能应用于小规模网络;
- 收敛速度慢;
- 根据跳数选择的路由,不一定是最优路由。
OSPF 协议?OSPF 的工作原理
OSPF(Open Shortest Pass First,开放最短路径优先协议),是一个最常用的内部网管协议,是一个链路状态协议。(网络层协议,)
原理:
OSPF 组播的方式在所有开启 OSPF 的接口发送 Hello 包,用来确定是否有 OSPF 邻居,若发现了,则建立 OSPF 邻居关系,形成邻居表,之后互相发送 LSA(链路状态通告)相互通告路由,形成 LSDB(链路状态数据库)。再通过 SPF 算法,计算最佳路径(cost 最小)后放入路由表
10、TCP与UDP区别
- TCP 面向连接(如打电话要先拨号建立连接)提供可靠的服务;UDP 是无连接的,即发送数据之前不需要建立连接,;UDP 尽最大努力交付,即不保证可靠交付。(由于 UDP 无需建立连接,因此 UDP 不会引入建立连接的时延,TCP 需要在端系统中维护连接状态,比如接受和发送缓存,拥塞控制,序号与确认号的参数等,故 TCP 会比 UDP 慢)
- UDP 具有较好的实时性,工作效率比 TCP 高,适用于对高速传输和实时性有较高的通信或广播通信。
- 每一条 TCP 连接只能是一对一的;UDP 支持一对一,一对多,多对一和多对多的交互通信
- UDP 分组首部开销小,TCP 首部开销 20 字节;UDP 的首部开销小,只有 8 个字节。
- TCP 面向字节流,实际上是 TCP 把数据看成一连串无结构的字节流;UDP 是面向报文的(一次交付一个完整的报文,报文不可分割,报文是 UDP 数据报处理的最小单位)。
- UDP 适合一次性传输较小数据的网络应用,如 DNS,SNMP 等
什么是三次握手四次挥手?tcp 为什么要三次握手?
为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误
第一次握手:建立连接时,客户端发送 syn 包(syn=j)到服务器,并进入 SYN_SEND 状态,等待服务器确认;
第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1),同时自己也发送一个SYN 包(syn=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态;
第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包 ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED 状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据

四次挥手
客户端先发送 FIN,进入 FIN_WAIT1 状态,用来关闭 Client 到 Server 的数据传送服务端收到 FIN,发送 ACK,进入 CLOSE_WAIT 状态,客户端收到这个 ACK,进入 FIN_WAIT2状态。
服务端发送 FIN,进入 LAST_ACK 状态,用来关闭 Server 到 Client 的数据传送客户端收到 FIN,发送 ACK,进入 TIME_WAIT 状态,服务端收到 ACK,进入 CLOSE 状态(等待 2MSL 时间,约 4 分钟。主要是防止最后一个 ACK 丢失。)
第一次挥手:主动关闭方发送一个 FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在 fin 包之前发送出去的数据,如果没有收到对应的 ack 确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。
第二次挥手:被动关闭方收到 FIN 包后,发送一个 ACK 给对方,确认序号为收到序号+1(与SYN 相同,一个 FIN 占用一个序号)。
第三次挥手:被动关闭方发送一个 FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到 FIN 后,发送一个 ACK 给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

文章来源于网络,如有侵权请联系博主
学习资源
如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你
知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。
01 内容涵盖
- 网络安全意识
- Linux操作系统详解
- WEB架构基础与HTTP协议
- 网络数据包分析
- PHP基础知识讲解
- Python编程基础
- Web安全基础
- Web渗透测试
- 常见渗透测试工具详解
- 渗透测试案例分析
- 渗透测试实战技巧
- 代码审计基础
- 木马免杀与WAF绕过
- 攻防对战实战
- CTF基础知识与常用工具
- CTF之MISC实战讲解
- 区块链安全
- 无线安全
- 等级保护

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以在下方优快云官方认证二维码免费领取【保证100%免费】

02 知识库价值
- 深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。
- 广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。
- 实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。
03 谁需要掌握本知识库
- 负责企业整体安全策略与建设的 CISO/安全总监
- 从事渗透测试、红队行动的 安全研究员/渗透测试工程师
- 负责安全监控、威胁分析、应急响应的 蓝队工程师/SOC分析师
- 设计开发安全产品、自动化工具的 安全开发工程师
- 对网络攻防技术有浓厚兴趣的 高校信息安全专业师生
04 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。
内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。
1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以在下方优快云官方认证二维码免费领取【保证100%免费】


650

被折叠的 条评论
为什么被折叠?



