网络安全简答题

1、SQL注入攻击原理和危害。

原理:sql注入攻击的原理是从客户端提交特殊的代码。Web应用程序如果没做严格的检查,就将其形成sql命令发送给数据库,从数据库返回的信息中攻击者可以获得程序及服务器的信息,从而进一步获得其他资料。

危害:sql注入攻击可以获取外部应用程序和数据库系统的信息,还可以通过搜狗输入攻击窃取敏感数据,篡改数据,破坏数据,甚至以数据库系统为桥梁进一步入侵服务器操作系统,从而带来更为巨大的破坏。

2、什么是XSS攻击,有哪些类型。

原理:

攻击者通过在合法的网站上注入恶意的客户端脚本,通常为JavaScript,当其他用户访问这些注入恶意脚本的页面时,浏览器会执行这些脚本。

XSS攻击主要有三种类型:

1、反射型XSS

攻击者构造一个包含恶意脚本的URL,诱导受害者点击,服务器收到请求时将恶意脚本直接返回给受害者的浏览器执行。

2、存储型XSS

攻击者将恶意脚本提交至易受攻击的网站,该脚本被存储在服务器。当其他用户访问包含该脚本的页面时,浏览器会执行它。

3、DOM-Based XSS

这种类型的Xss攻击不是通过服务器响应注入,而是在客户端DOM(文档对象模型)层面发生的。当浏览器解析网页内容时由于存在不安全的DOM操作,导致恶意脚本被执行。

防范:

1、对用户输入进行严格的验证和净化,对特殊字符进行转义

2、使用HTTP-only类属性保护cookie,防止通过JavaScript盗窃

3、对输出到浏览器的内容进行编码,确保显示的内容不会被执行为脚本

4、引入content security policy等现代安全特性,来限制浏览器执行的脚本来源。

3、什么是CSRF攻击

攻击者利用用户的浏览器在用户登录状态下自动发送经过认证的请求这一特性,诱使用户在不知情的情况下执行攻击者预设的恶意操作。

具体步骤如下:

一、用户登录:用户在可信网站A上登录并获取有效的会话标识,浏览器会自动在后续对该网站的所有请求中携带此规划标识。

二、构造恶意请求:攻击者构建一个恶意网页并在这个网页中嵌入一个请求。

三、诱导用户访问:攻击者诱使用户访问包含恶意请求的网页。

四、浏览器自动发送请求:当用户访问恶意网页时,用户的浏览器因其仍处于网站a的登录状态,所以在加载网页时会自动按照恶意代码发出请求 ,而这个请求包含了用户在网站a的认证凭据。

五、服务器误判:网站a的服务器收到这个请求后,看到请求携带有效的会话标识,就误以为这是用户自己发起的合法操作,于是执行了其中的动作。

为了防止CSRF网站需要实施额外的安全措施。例如使用Csrf token、检查referer头、限制特定操作,只允许通过post的请求发起以及实施更严格的同源策略等。

4、什么是文件上传漏洞

漏洞原理:

1. 当Web应用程序允许用户上传文件,如果没有进行严格的验证,攻击者可能会上传非预期类型的文件,尤其是可执行脚本文件(如PHP、ASP、JSP等)。

2. 如果服务器接收并存储了这些恶意文件,使得这些文件可以被执行,攻击者就能通过访问上传的恶意文件来执行服务器端的任意代码。

防御措施:

•验证文件类型:使用MIME类型检查或后缀名白名单机制,确保仅允许上传安全的文件类型。

•限制路径:将上传文件保存在不能直接执行脚本的目录下,并对上传目录的权限进行严格控制。

•文件内容检查:对上传文件的内容进行分析。

•随机化文件名:上传文件时赋予随机名称或哈希值作为文件名,防止基于文件名的攻击。

MIME类型:在实现文件上传功能时,通常会通过以下方式来进行MIME类型检查:

•设置文件扩展名白名单,仅允许特定扩展名的文件上传。

•服务器端检查文件的实际内容,通过读取文件头部信息判断其MIME类型。

•使用Content-Type HTTP头部字段进行校验,确保客户端声称的MIME类型与服务器侧检查一致。

5、DDos 攻击

DDoS (Distributed Denial of Service) 攻击的原理是利用大量的互联网连接资源,向目标系统发送大量请求或数据包,从而使得目标服务器或网络资源无法正常响应合法用户的请求。

下面是DDoS攻击的详细工作原理:

1. 僵尸网络构建:

•攻击者首先通过恶意软件感染大量互联网上的计算机、物联网设备(如智能设备、摄像头等),将它们转化为受控的“僵尸”或“肉鸡”。

2. 攻击发起:

•攻击者选定目标后,命令僵尸设备同时向目标服务器或网络资源发送大量请求或数据包,目的是占用网络带宽、服务器处理能力或内存资源。

3. 资源耗尽:

•目标服务器在短时间内收到超出其处理能力的海量请求,导致其CPU使用率飙升、内存耗尽、带宽饱和,最终无法为合法用户提供服务。

4. 难以防御:

•DDoS攻击的特点是攻击流量来自全球各地的多个源头,这使得传统防火墙或简单的流量过滤难以有效应对。

5. 攻击类型:

•DDoS攻击有不同的类型,如带宽消耗攻击(如UDP洪水攻击)、协议层攻击(如SYN洪水攻击)、应用层攻击(如HTTP GET/POST洪水攻击)等,每种攻击针对的目标资源和防御方法都有所差异。要防御DDoS攻击,通常需要采用分布式防御系统、深度包检测技术、流量清洗和智能路由策略等多种手段相结合的方式,以及与互联网服务提供商合作进行流量管控。
 

6、重要协议分布图

1、网络层、IP协议+MAC地址

2、传输层、TCP、UTP协议

3、应用层、HTTP、SSH、FTP协议

详细内容指路:TCP/IP协议栈-CSDN博客

7、arp协议的工作原理,APR安全问题。

ARP(Address Resolution Protocol,地址解析协议)是TCP/IP协议栈中用于将IP地址映射到对应的硬件地址(通常是MAC地址)的一种网络层协议。

ARP协议的工作原理主要分为两个阶段:ARP请求和ARP应答。

ARP请求阶段:

1. 当主机A想要向同一局域网内的主机B发送数据时,主机A只知道目标主机B的IP地址,而不知道其MAC地址。

2. 主机A会发送一个包含了目标主机B的IP地址的ARP请求广播帧到整个局域网内。

3. 广播帧中的ARP请求会被局域网内的所有主机接收到,但只有拥有指定IP地址的目标主机B才会响应。

ARP应答阶段:

1. 主机B收到ARP请求后,发现自己IP地址与ARP请求中所求的IP地址相匹配,便会发送一个包含了主机B的MAC地址的ARP应答给主机A。

2. 主机A接收到ARP应答后,将在本地ARP缓存中记录下主机B的IP地址与其对应的MAC地址。

3. 主机A知道了目标主机B的MAC地址,就可以在其数据链路层封装帧头时使用这个MAC地址,从而将数据帧发送到目标主机B。

ARP缓存与老化:

•ARP协议维护一个本地缓存,用来存储最近查询过的IP地址与MAC地址的映射关系。

•ARP缓存中的条目并非永久有效,会随着时间推移而老化并被清除。

安全问题:

1.ARP欺骗(ARP Spoofing):

•攻击者通过发送虚假的ARP响应来篡改网络中其他设备的ARP缓存表,欺骗目标主机或路由器,让他们相信攻击者的MAC地址是另一台合法设备的MAC地址。例如,攻击者可以将自己的MAC地址与网关的IP地址绑定,从而截取、篡改或嗅探网络流量,进行中间人攻击(Man-in-the-Middle Attack)。

2. ARP中毒(ARP Poisoning):

•ARP中毒是ARP欺骗的一种形式,攻击者持续发送虚假ARP响应,使受影响的主机始终使用错误的MAC地址。

3. ARP缓存溢出:

•攻击者发送大量ARP请求或响应,导致目标主机的ARP高速缓存满载,无法存储新的ARP条目。

 

为了对抗ARP相关的安全问题,可以采取以下防护措施:

•静态ARP绑定:在路由器或交换机上手动配置ARP表项,将特定的IP地址与正确的MAC地址静态绑定。

•ARP Snooping: •在二层交换机上启用ARP Snooping功能,它能够监控ARP通信并只转发合法的ARP请求和响应。

•ARP缓存验证: •使用ARPwatch等工具监控ARP缓存的变化,发现异常时及时警告。

•部署ARP安全协议: •使用DHCP Snooping + IP Source Guard + Dynamic ARP Inspection(DAI)等技术组合,可以在一定程度上防止ARP欺骗攻击。

8、DOS攻击

DOS攻击(拒绝服务攻击)的基本原理:

•单点攻击:攻击者使用一台或多台计算机向目标服务器发送大量请求或数据包,占用其大部分或全部资源,使其无法处理正常用户的请求。

•例如,SYN Flood攻击就是通过发送大量未完成的TCP连接请求,耗尽服务器的TCP连接队列资源,导致服务器无法接受新的连接请求。

DDoS攻击(Distributed Denial of Service):

•分布式拒绝服务攻击是DOS攻击的升级版,攻击者控制大量的僵尸主机(Botnet,又称“肉鸡”)同时向目标发起攻击。

9、dns是什么?dns的工作原理

DNS是一种将域名映射到IP地址的分布式命名系统。DNS的主要作用是将用户友好的域名转换为计算机可以理解的IP地址,以便将用户的请求路由到正确的服务器。

DNS的工作原理:

1、用户在浏览器中输入一个域名,例如www.example.com。

2、操作系统向本地DNS服务器发送一个DNS查询请求,询问域名www.example.com的IP地址。

3、如果本地DNS服务器具有存储在其缓存中的www.example.com的IP地址,它将返回该IP地址。

4、如果本地DNS服务器不知道www.example.com的IP地址,它将向根DNS服务器发出查询请求。

5、根DNS服务器将指导本地DNS服务器转到负责.com域的顶级DNS服务器。

6、本地DNS服务器将向.com顶级DNS服务器发出查询请求,请求www.example.com的IP地址。

7、.com顶级DNS服务器将指导本地DNS服务器转到负责example.com的权威DNS服务器。

8、本地DNS服务器将向example.com的权威DNS服务器发出查询请求,请求www.example.com的IP地址。

9、权威DNS服务器将返回www.example.com的IP地址,本地DNS服务器将缓存该结果并将其返回给操作系统。

10、操作系统将使用IP地址来连接到www.example.com的服务器,以获取所需的网页或其他资源。

10、rip协议是什么? rip的工作原理

RIP是一种基于距离向量的路由协议,用于在局域网或广域网中交换路由信息,并计算出最佳的路由路径。RIP是一种较为简单的路由协议,常用于小型网络环境。

RIP协议的工作原理:

1、RIP协议将整个网络分成若干个网络段,每个网络段有一个唯一的标识符,称为网络号。

2、每个路由器都会维护一个路由表,记录着到达不同网络的距离和下一跳路由器的信息。

3、路由器会周期性地向相邻路由器广播自己的路由表信息,让相邻路由器了解到自己的路由情况。

4、当一个路由器接收到相邻路由器的路由信息后,会将自己的路由表与之比较,如果相邻路由器提供了一条更短的路径,那么就更新自己的路由表,并将这条信息广播给相邻路由器。

5、路由器会不断地更新自己的路由表,直到所有路由信息都已经传播到网络中的每个路由器,并且网络中的所有路由表都一致。

11、RIP的缺点

1、收敛速度慢:当网络中发生故障或拓扑结构变化时,RIP协议需要较长的时间才能使整个网络的路由表更新。这是因为RIP协议的更新周期较长,而且它使用的是距离向量算法,无法快速适应网络变化。

2、不支持大型网络:RIP协议只能支持较小规模的网络,当网络规模变大时,RIP协议会产生大量的路由信息,从而消耗大量的带宽和处理能力,导致网络性能下降。

3、不支持VLSM:RIP协议只能支持固定长度的子网掩码,无法支持可变长度子网掩码(VLSM),这限制了RIP协议在复杂网络环境中的应用。

4、安全性差:RIP协议没有对路由信息进行验证和加密,容易受到欺骗和攻击,从而导致网络安全问题。

12、OSPF协议? OSPF的工作原理

OSPF是一种路由协议用于在一个单一自治系统(AS)中实现最短路径优先(Shortest Path First,SPF)算法,以决定数据包的传输路径。

OSPF协议的工作原理:

1、邻居发现:OSPF协议在邻居发现阶段,通过发送和接收Hello消息来确认邻居关系。如果两个路由器之间建立了邻居关系,它们将开始交换路由信息。

2、链路状态数据库同步:每个OSPF路由器将它们的链路状态信息存储在一个本地的链路状态数据库(Link State Database,LSDB)中。当两个邻居路由器建立邻居关系后,它们将交换各自的链路状态信息,并将其存储在本地的LSDB中。此时,每个路由器都会尝试同步它们的LSDB。

3、SPF计算:在每个路由器都有完整的LSDB后,它们将使用SPF算法来计算最短路径树(Shortest Path Tree),并将其存储在路由表中。最短路径树是指从某个路由器出发到其他所有路由器的最短路径。

4、路由更新:每个路由器都会定期发送更新消息来通知其它路由器它们的链路状态发生了变化。当一个路由器收到一个更新消息时,它会更新自己的LSDB,并重新计算最短路径树。

5、数据传输:当数据包到达一个路由器时,该路由器将使用最短路径树来确定下一个路由器,并将数据包转发到该路由器。

13、TCP与UDP区别总结?

1、连接:TCP是面向连接的协议,而UDP是无连接的协议。这意味着TCP在发送数据之前需要建立连接,而UDP则不需要。

2、可靠性:TCP提供可靠的数据传输,因为它使用确认和重传机制来确保数据传输的正确性。而UDP没有这个机制,因此可能会丢失数据包。

3、速度:UDP比TCP更快,因为它没有建立连接和确认机制,数据可以更快地传输。

4、带宽:TCP具有自适应拥塞控制,可以动态调整传输速率以适应网络状况,从而最大化利用可用带宽。而UDP则没有这个功能。

5、适用范围:TCP适用于需要可靠传输和有序交付的应用程序,例如电子邮件、文件传输和Web浏览器。而UDP适用于需要快速传输和实时性的应用程序,例如视频流、游戏和音频通话。

14、什么是三次握手四次挥手?tcp为什么要三次握手?

三次握手指的是在TCP建立连接时,客户端和服务器之间需要进行三次数据交换的过程。

1、客户端向服务器发送一个SYN数据包,表示请求建立连接。

2、服务器收到SYN请求,向客户端发送一个SYN+ACK数据包,表示确认请求并同意建立连接。

3、客户端收到服务器的SYN+ACK请求,向服务器发送一个ACK数据包,表示确认连接已建立。

四次挥手指的是在TCP关闭连接时,客户端和服务器之间需要进行四次数据交换的过程。

1、客户端向服务器发送一个FIN数据包,表示请求关闭连接。

2、服务器收到FIN请求,向客户端发送一个ACK数据包,表示确认收到请求。

3、服务器向客户端发送一个FIN数据包,表示服务器也请求关闭连接。

4、客户端收到服务器的FIN请求,向服务器发送一个ACK数据包,表示确认收到请求,连接正式关闭。

tcp为什么要三次握手?

主要是为了保证连接的可靠性。在建立连接的过程中,需要确保双方的收发能力正常,否则连接建立后无法正常通信。通过三次握手,可以确保客户端和服务器之间的信息传递正常,并且防止网络中的延迟数据包误认为是有效的连接请求。

15、GET和 POST的区别

1、GET请求用于获取资源,通常不会改变服务器上的数据。GET请求通过URL传递数据,数据会附加在URL的末尾,形成查询字符串。查询字符串以问号"?"开头,参数之间用"&"符号连接,由于数据以明文

相关推荐

  1. 网络安全简答题

    2024-03-25 08:44:04       19 阅读
  2. 计算机网络重点简答题

    2024-03-25 08:44:04       34 阅读
  3. 计算机网络简答题:复试+期末

    2024-03-25 08:44:04       23 阅读
  4. 机器学习简答题

    2024-03-25 08:44:04       37 阅读
  5. 数据库重点简答题

    2024-03-25 08:44:04       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-25 08:44:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-25 08:44:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-25 08:44:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-25 08:44:04       20 阅读

热门阅读

  1. FPGA时钟资源详解——Clock-Capable Inputs

    2024-03-25 08:44:04       18 阅读
  2. 【DevOps云实践】Azure Function中使用发布/订阅模式

    2024-03-25 08:44:04       18 阅读
  3. spring boot常见的面试题

    2024-03-25 08:44:04       17 阅读
  4. 解决 Jupyter Notebook 中没有显示想要的内核的问题

    2024-03-25 08:44:04       18 阅读
  5. C语言题目:字符提取(自定义函数)

    2024-03-25 08:44:04       19 阅读
  6. ipv4、ipv6、tcp、udp包结构以及字段解释

    2024-03-25 08:44:04       21 阅读
  7. 快速入门Kotlin③类与对象

    2024-03-25 08:44:04       20 阅读