每日十题八股-2025年1月13日

1.服务端正常启动了,但是客户端请求不到有哪些原因?如何排查?
2.服务器ping不通但是http能请求成功,会出现这种情况吗?什么原因造成的?
3.什么是ddos攻击?怎么防范?
4.SQL注入问题是什么?
5.CSRF攻击是什么?
6.XSS攻击是什么?
7.了解过DNS劫持吗?
8.用户态和内核态的区别?
9.线程和进程的区别是什么?
10.进程,线程,协程的区别是什么?

1.服务端正常启动了,但是客户端请求不到有哪些原因? 如何排查?

  1. Ping一下服务端的IP地址,判断IP地址是否正确。
  2. 检查被测接口端口号是否正确,可以在本机Telnet接口的IP和端口号,检查端口号能否连通。
    在这里插入图片描述
  3. 如果以上都正确,那么就查看服务端的防火墙是否开放了对应的ip和端口。
  4. 最后检查你使用的客户端,是否设置了网络代理等网络设置导致请求失败。

若在有响应代码的话,可以根据响应代码排除故障。
4开头是客户端请求有问题,5开头是服务端的问题。
在这里插入图片描述

2.服务器ping不通但是http能请求成功,会出现这种情况吗?什么原因造成的?

ping 走的是 icmp 协议,http 走的是 tcp 协议。
有可能服务器的防火墙禁止 icmp 协议,但是 tcp 协议没有禁止,就会出现服务器 ping 不通,但是 http 能请求成果。

3.什么是ddos攻击?怎么防范?

DDoS(分布式拒绝服务)攻击是一种通过大量分布在不同地方的计算机或设备(通常是受感染的僵尸网络)向目标服务器、网站或网络发送大量请求,造成目标资源耗尽或系统崩溃,从而使其无法正常提供服务。

4.SQL注入问题是什么?

SQL注入是一种常见的网络攻击方式,攻击者通过在输入字段(如表单、URL、查询字符串等)中插入恶意的SQL代码,来操控后端数据库系统执行未授权的操作。 通过这种方式,攻击者可以读取、修改、删除数据库中的数据,甚至执行系统命令或获取敏感信息。
在这里插入图片描述
#{} = ?而${}是String替换,易发生SQL注入。
在这里插入图片描述

5.CSRF攻击是什么?

CSRF(跨站请求伪造)攻击是一种利用已认证用户的身份,伪造请求执行恶意操作的攻击方式。攻击者诱使受害者在已登录的情况下,向目标网站发送未经授权的请求,从而在受害者不知情的情况下执行危险的操作,例如转账、修改密码或删除数据。
CSRF攻击的原理:

  1. 攻击者首先诱使用户访问一个恶意网站。
  2. 在这个恶意网站上,攻击者通过脚本、表单等方式向受害者已经登录的目标网站发起请求。
  3. 因为目标网站认为请求来自合法用户(受害者已登录),会执行该操作(如提交表单、修改数据等),即使受害者并没有主动发起这些操作。

防范CSRF的常见方法:

  1. 使用Token验证: 在每个敏感请求中加入一个唯一的随机Token,服务器验证这个Token是否有效。常用的做法是使用“CSRF Token”作为验证机制,确保请求是由用户合法发起的。
  2. 验证Referer头: 服务器可以检查请求头中的Referer字段,确保请求来源于受信任的页面。如果不是,则拒绝请求。
  3. SameSite Cookie属性: 通过设置Cookie的SameSite属性,可以限制浏览器仅在同站请求时发送Cookie,从而防止跨站请求伪造。
  4. 双重身份验证: 对于敏感操作,要求用户输入二次身份验证(如验证码或短信验证码),以防止自动化伪造请求。

6.XSS攻击是什么?

XSS(跨站脚本攻击)是一种常见的网络攻击方式,攻击者通过在网页中注入恶意脚本(通常是JavaScript)来攻击其他用户。XSS攻击的目标是执行恶意脚本,窃取用户信息、篡改网页内容、劫持用户会话或进行其他恶意操作。
XSS的基本原理:

  1. 攻击者在受害者访问的网页中注入恶意脚本。
  2. 当受害者浏览该网页时,恶意脚本会在浏览器中执行,通常以用户的身份进行操作。
  3. 这些恶意脚本可以窃取用户的Cookie、会话信息、输入的表单数据,或执行一些未授权的操作。

在这里插入图片描述
在这里插入图片描述

7.了解过DNS劫持吗?

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

8.用户态和内核态的区别?

内核空间(Kernal Space),这个空间只有内核程序可以访问;用户空间(User Space),这部分内存专门给应用程序使用。
内核态(Kernel Mode): 在内核态下,CPU可以执行所有的指令和访问所有的硬件资源。这种模式下的操作具有更高的权限,主要用于操作系统内核的运行。
用户态(User Mode): 在用户态下,CPU只能执行部分指令集,无法直接访问硬件资源。这种模式下的操作权限较低,主要用于运行用户程序。

内核态的底层操作主要包括:内存管理、进程管理、设备驱动程序控制、系统调用等。这些操作涉及到操作系统的核心功能,需要较高的权限来执行。

在这里插入图片描述

在这里插入图片描述

9.线程和进程的区别是什么?

在引入了线程的操作系统中,通常一个进程都有若干个线程,至少包含一个线程。
根本区别: 进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。
资源开销: 每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。
包含关系: 如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。
内存分配: 同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的。
影响关系: 一个进程崩溃后,在保护模式下不会对其他进程产生影响 ,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。
执行过程: 每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行
在这里插入图片描述

10.进程,线程,协程的区别是什么?

进程。 进程是操作系统中进行资源分配和调度的基本单位 ,它拥有自己的独立内存空间和系统资源。
线程。 线程是进程内的一个执行单元,也是CPU调度和分派的基本单位。 各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。
协程。 是一种基于线程之上,但又比线程更加轻量级的存在,这种由程序员自己写程序来管理的轻量级线程叫做『用户空间线程』,具有对内核来说不可见的特性。协程拥有自己的寄存器上下文和栈,但与其他协程共享堆内存。协程的切换开销非常小,因为只需要保存和恢复协程的上下文,而无需进行内核级的上下文切换。 一个线程可以多个协程,一个进程也可以单独拥有多个协程。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值