文章目录
- 1. TCP 和 UDP的异同
- 2. TCP为什么要三次握手 两次不行吗
- 3. get post put 请求方式有什么区别
- 4. 什么是XXS攻击 如何避免
- 5. 什么是 CSRF 攻击,如何避免
1. TCP 和 UDP的异同
TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常见的传输层协议,用于在网络中进行数据传输。它们之间主要有以下异同:
可靠性:TCP 是一种面向连接的可靠协议,它可以保证数据传输的可靠性,并通过重传机制和流量控制来保证数据的正确到达。而 UDP 则是一种无连接的不可靠协议,不提供确认、重传和流量控制等可靠性保证。
速度:由于 TCP 的可靠机制和复杂的协议头部,它的传输速度相对较慢;而 UDP 虽然不具有可靠性,但协议头部比 TCP 简单,传输速度较快。
连接:TCP 是面向连接的,需要三次握手建立连接,建立连接后才能进行数据传输。而 UDP 则是无连接的,发送方只需知道目的地址和端口号,即可向其中发送数据。
适用场景:TCP 通常应用于各种需要确保数据完整性、稳定性的应用程序,如文件传输、电子邮件、网页浏览、远程登录等;而 UDP 则适用于实时性要求高、延迟较小的应用程序,例如音视频传输、在线游戏等。
实现复杂度:TCP 协议本身具有较高的实现复杂度,需要手动实现一些具体的细节;而 UDP 相对简单,不需要很多额外的处理。
在选择 TCP 或 UDP 作为传输协议时,应根据具体的应用需求和性能要求来选择使用哪种协议。如果需要可靠地传输数据或进行大文件传输,则应选择 TCP;如果需要快速地进行实时数据传输,则应选择 UDP。
2. TCP为什么要三次握手 两次不行吗
TCP协议采用三次握手的原因在于确保双方之间建立可靠的连接,避免出现类似于以下的数据包重复发送的情况:
-
客户端发送连接请求报文段 SYN。但是由于网络等原因导致该报文未及时到达服务器,客户端无法获得确认信息。
-
服务端收到客户端请求后发送了确认信息回应(SYN+ACK码),但是由于网络等原因导致该信息还未及时到达客户端,此时服务端会启动超时重传机制,重传相同的确认信息。
-
客户端接收到该确认信息,但此时客户端已经向服务端发送了其他请求或已关闭连接,不再响应认证信息。然而,服务端并不知道客户端已经关闭连接,会一直发送确认信息,这样可以占用过多的网络资源,影响网络性能。
如果只需要两次握手,那么在以上情况下就有可能会发生错误:双方都进入到了ESTABLISHED状态,但实际上客户端无意与服务端通信,使服务端的资源白白浪费了。所以,三次握手的步骤可以确保双方建立可靠的连接,并避免类似的问题出现,从而更好地保障数据传输的可靠性和安全性。
3. get post put 请求方式有什么区别
GET、POST和PUT都是常见的HTTP请求方法,主要区别如下:
GET:一般用于获取资源(特别是多次访问同一资源),通过 URL 传递参数,对数据没有修改操作,并且通常不支持发送大量数据。
POST:一般用于提交表单数据或者上传文件等请求,将数据置于请求体中,对服务器的数据做出改变,并且可以发送大量数据。
PUT:一般用于更新资源,是幂等的操作。可以通过请求内容来更新指定的资源,例如上传新版本的文件到服务器。
总结:
GET 请求是一种简单的数据获取方式,且速度较快,但安全性较低,不能用来传递敏感信息。经常被用作请求静态资源或者页面,从而加快网页展示速度。
POST 请求传输更大的数据和用户信息,有更好的安全性,同时也可用于创建更新资源。
PUT 请求同样也可用于更新资源,但更强调的是替换已存在的资源,如更新一个文件。
虽然每个方法都有其自身特性和优势,但在实际使用时需要根据具体的场景,选择合适的HTTP方法进行数据的传输和请求,以对网络的负载和性能影响最小化。
4. 什么是XXS攻击 如何避免
跨站脚本攻击(Cross-site scripting attack, XSS攻击)是一种常见的Web攻击,攻击者利用漏洞注入恶意的脚本代码,在用户浏览器上运行,从而窃取或篡改用户信息,以达到攻击目的。
以下是一些可行的避免措施:
-
输入检查和过滤:应对用户输入进行检查和过滤,特别是对 HTML 和 JavaScript 等敏感符号进行转义处理。可以通过使用一些现成的库来实现安全地处理数据。
-
设置HTTP头中的X-XSS-Protection属性:该属性用于开启或关闭XSS筛选功能,并指定浏览器的反射性XSS保护级别。设置该属性能够帮助浏览器检测和防御潜在的XXS攻击。
-
使用Content-Security-Policy(CSP):CSP可以控制Web页面的资源加载,使其只能加载域名白名单内的资源文件,从而有效地防止执行恶意脚本的情况出现。
-
安全编码和安全管理:在系统设计开发和维护阶段,应严格执行安全编码和安全管理标准规范,及时修补已知漏洞和弱点,包括但不限于更新后台管理系统、强化用户密码等。
XXS攻击对于现代Web应用来说是一个普遍的问题。应采取一系列适当的技术和管理措施,以防止这种类型的攻击和恶意代码注入。
5. 什么是 CSRF 攻击,如何避免
跨站请求伪造攻击 (Cross-Site Request Forgery, CSRF) 是一种常见的Web攻击,攻击者通过某种方式诱导用户在登录了某个网站后,进入一个恶意网站,利用漏洞来实现对登录状态的利用。
以下是一些可行的避免措施:
-
防止非法请求:在程序中进行验证,只接受来自正式页面的请求,设定一个验证机制 ,比如 唯一Token之类的方法,这样可以减少被CSRF攻击的可能性。
-
关闭第三方 Cookie:在应用程序上关闭第三方Cookie的使用(最好禁用该功能),可以有效地避免来自恶意 JavaScript 的操作。
-
对敏感操作进行二次验证:对于敏感操作,加入二次验证 (如:输入验证码或 token),以提高安全性.
-
安全编码和安全管理:在Web应用的设计、开发和维护过程中,应严格执行安全编码和安全管理标准规范,及时修补已知漏洞和弱点。同时,其他通用的防御措施(如CSP)也可参考。
通过尽量避免信任外部输入及严格限制用户权限,并采取以上几点防范措施,可以有效地降低CSRF攻击的风险。