Network Attack

攻击

SQL注入攻击的原理

  1. 不发送正常的数据,通过写入SQL语句对数据库进行恶意操作(输入正常数据,服务器拿到数据,并向数据库中查询数据), 譬如多增加了一个单引号或者 –注释内容或将AND修改为OR 那么黑客在不知道账户密码的情况下也能够进行登录操作

    SQL注入攻击

XSS网络攻击 | 跨站脚本分析

  1. 侧重于脚本,千方百计的注入并执行恶意脚本
  2. https://xssaq.com/yx/level1.php?name=test

危害

  1. 窃取cookie
  2. 劫持流量
  3. 插入广告
  4. 置入木马
  5. 获取用户信息

方式

  1. url参数注入
  2. 输入框注入

预防

  1. 输入注入: 对输入进行过滤
  2. 输出执行: 对输出进行转义
  3. 预防XSS攻击

反射型

  1. 用户在网站上输入url(包含部分信息,若包含黑河注入的恶意代码),而服务器没有对该信息及进行过滤,那么浏览器反射回来的url就会被恶意攻击.难度大,要点击连接
  2. image-20230918101032718
  3. XSS反射型

存储型

  1. 一般发生在可以发表的网站上,一般黑客将恶意代码脚本作为评论发送给网站服务器,如果服务器不进行过滤就会将脚本永久保留在数据库,用户可以看到所有的评论,即用户在浏览评论(服务器执行该脚本)是被动受到攻击

    存储型XSS攻击

DOM

  1. 恶意代码仅在客户端运行

  2. 浏览器发送url是先将#前面的地址发送给服务器,然后服务器响应,浏览器再将剩下的URL发送给服务器进行请求(黑空利用这个进行DOM攻击),当然黑客是找脆弱的地方进行攻击(即在服务器发送的源码中找到对应的可操作的属性和方法)修改网页DOM

    DOM型XSS攻击

CSRF | 跨站请求伪造请求

  1. 不注入恶意脚本,侧重于 伪造,借刀杀人,在用户不知情的情况下,届用户的名义干坏事。
  2. 尽量使用post请求、加入验证码、验证Referer、AntiCSREToken

IDOR漏洞的原理 | 越权

  1. 用户能访问到他没有权限的页面,将用户数据暴露在url上
  2. 暴力破解,将所有id进行循环,查看是谁
  3. 预防: 给用户增加权限 | 用户id采用hash处理,使数据难以暴露

DDoS攻击 | 拒绝服务

  1. 多台服务器像一台服务器或路由发起的攻击
  2. 使用大规模的网络流量使得正常流量不能访问受害目标,不是一种入侵攻击而是一种压垮性的网络攻击

canvas指纹追踪技术

技术场景(常用于广告联盟)例如你在某个网站上看到某个商品没有登录过账号信息,过两天用同台电脑访问其他网站的时候却发现很多同类商品的广告。在过去我们可能使用cookie去追踪用户信息,不过弊端也很明显cookie可以被用户禁止掉,从而无法追踪,并且无法跨域访问。

或者就是浏览器指纹(navigator)

userAgent(用户代理)

【作者:小满zs https://www.bilibili.com/read/cv16329382?spm_id_from=333.999.0.0 出处:bilibili】

可交换图像文件

如果发送原图的话,会将exif一并存储到照片当中,别人是能通过exif解析器解析到照片数据,是比较危险的用户信息泄露

蜜罐

DNS域名解析过程

  1. DNS域名解析过程的底层原理就是图书馆的运营管理方法

  2. 域名转化IP地址过程,DNS一般由UDP传输的。53端口

  3. www、mail这些访问主站 com这些事域名

    域名分类

  4. 根域名服务器

  5. 顶级域名服务器 | TLD gtld通用顶级域名

  6. 权威域名服务器

  7. 过程

    输入ip地址先查询本地记录是否缓存过该IP或者在主机本地文件中是否有记录

    无缓存,用户输入域名会发送请求通过解析器DNS客户端,发送解析请求到DNS服务器(本地DNS服务器),本地服务器会查找本地缓存中是否由该IP地址并会标注(non-authoritative),先得到根,在得到域名

  8. DNS解析

  9. image-20230615214155366

二维码扫描登录原理

  1. 二维码扫描原理

互联网

OSI | 七层模型

物理层: 传输 比特流 0101这些

数据链路层: 拼装成 数据帧 + MAC地址,就是将比特流转变成数据帧,通过广播的形式进行。mac地址是每个网卡的唯一标识,使用物理交换机进行跳点的服务进行交换。

网络层IP地址,通过路由器进行寻址,ip协议(4版本即ipv4,差不多基本用完了,所以现在有ipv6)

传输层端口号、控流、校验、TCP(可靠、慢、三次握手、四次挥手)、UDP(不稳定、速度快、直播、游戏)

会话层报文

表示层解码、翻译

应用层 :ajax发送http请求、DNS域名解析、webSocket长连接

三次握手

TCP

TCP三次握手

TCP三次握手

四次挥手

CLOSE_WAIT状态:是保证客户端或者服务器端将未发送完的数据包进行发送

等待1-4分钟后再关闭:万一第四次挥手时ACK包丢失,那么这个等待时间可以让服务器端再次进行FIN发送,确保客户端发送的ACK包能接收到,不然可能服务器端无法断开连接。

四次挥手

四次挥手

浏览器输入url会发生什么

options预检请求,当发送跨域的post请求、自定义请求头也会触发options请求

强缓存:让浏览器强制缓存服务端提供的资源(静态资源、css),第二次就直接浏览器返回,不用在经过服务端

协商缓存:状态码返回304,表示资源没有改变,并且响应体为空;如果改变了响应码为200

CDN | 内容分发

优化网络请求时间

负载均衡、内容分发

跨域

前后端分离,导致静态资源和API接口不是在同一个服务器下面部署的,从而容易引发跨域问题。可以将静态资源和API接口放在同一个服务器下面

浏览器同源政策:协议、端口、域名都要相同,只发生在浏览器和服务器之间,是不会发生在浏览器和浏览器之间,服务器与服务器之间也不会发生。

image-20230920103603162

前后端协议 JSONP

通过script的src不受同源政策的限制,可以跨域请求,但是只能发送get请求

缺点:只能发送get请i去,不安全,不容易维护

后端返回的是一个函数,但是这个函数是在前端定义的,他会把值注入到这个函数的参数里面

image-20230709141300042

后端实现

前端解决,使用代理dev

只对开发环境有效,服务器之间是没有跨域的,这里配置时vite给我们开启了一个服务,vite服务作为一个中间代理给服务器发请求才没有跨域问题

rewrite:看自己的重写规则,他给的时/api替换成空

image-20230709132137524

Node代理服务器

CORS,跨资源共享,后端解决,设置请求头

  • 他是一种基于http header的机制
  • 该机制通过运训服务器标示除了自己以外的其他源,使得浏览器允许这些源访问加载自己的资源
  • 简单请求、非简单请求
  • image-20230920110803917

***** 全部都可以访问,是不安全的可以将 ***** 替换成当前前端的网址相对安全点

后端解决跨域问题

运维端解决,nginx代理

再config/nginx.conf文件夹下修改, 修改完之后需要重启nginx服务,一般在前端项目上线的时候才需要进行这种配置,开发时直接配置vite或webpack文件夹即可

nginx代理

AJAX

优点:提升用户体验

缺点:对SEO(搜索引擎优化)不友好

XMLHttpRequest

代码写起来很多,而且 已不再维护

fetch

缺点: 无法设置超时时间

SSE | 事件流

长连接,服务器主动向客户端推送数据的技术;写的时http

单工通讯,前端只发送一次网络请求,后端可以实时发送网络请求:chatGPT、实时数据大屏

双工通信:AJAX,前端发请求,后端响应请求,然后一直这样这去

webSocket

长连接;写的时ws

全双工通讯;聊天、游戏、多人文档编辑器、

HTTP 80

缺点 明文传输,内容可能会被盗用;不验证通信方身份,可能会遭遇伪装;无法证明报文的完整性,所以有可能会被篡改。

HTTPS 443

信息加密、完整性校验、身份验证 HTTPS = HTTP + SSL | TLS

SSL是TSL的前身,现在广泛使用TSL;他是在应用层的下面,传输层的上面的安全层进行加密的

加密方式:对称加密(AES、DES)双方拥有相同的密钥、非对称加密(一人一把钥匙进行加密解密,即公钥和私钥)、散列函数

TSL是将三种加密方式融合起来,所以安全性非常的高

JWT | 鉴权

JSON Web Token ;身份验证,授权

通过.分割,由三部分组成

网络状态

获取当前网络状态 console.log(navigator.onLine),true:在线,false:离线

slow-2G 2G 是弱网环境;3G 4G是强网环境

304

协商缓存引起的,服务器资源无变化,服务器响应实体为空,返回状态码为304,如果服务器资源发生变化,那么会返回资源,并返回状态码为200

产生较多304状态码的原因

  1. 页面更新周期长或不更新
  2. 纯静态页面或强制生成静态html

304状态码出现过多会造成的问题

  1. 网站快照停止
  2. 收录减少
  3. 权重下降

域名

跟英文写法一样,是倒过来的,以www.caoqin.top为例,**.top是顶级域名,.caoqin是一级域名,我们购买域名就是购买顶级域名下的一级域名的使用权,而www等是你在购买一级域名之后才有的二级域名,没有一级域名就没有二级域名**

域名构成


Network Attack
http://example.com/2023/06/15/Network-Attack/
作者
Caoqin
发布于
2023年6月15日
许可协议