一文入门DNS

概述

DNS是一个缩写,可以代表Domain Name System,域名系统,是互联网的一项基础服务。也可以代表Domain Name Server,域名服务器,是进行域名和与之相对应的IP地址相互转换的服务器。DNS协议则是用来将域名转换为IP地址(也可将IP地址转换为相应的域名地址)。

当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。开始时,域名的字符仅限于ASCII字符的一个子集。

DNS解析,将域名翻译为可由计算机直接读取的IP地址。根据查询对象不同,DNS解析可分为递归解析和迭代解析两种方式。

使用TCP和UDP端口53,在进行区域传输时使用TCP协议,其它时候则使用UDP协议。

DNS的规范规定2种类型的DNS服务器,即主DNS服务器和辅助DNS服务器。在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息。

Zone Transfer:区传送,当一个辅助DNS服务器启动时,它需要与主DNS服务器通信,并加载数据信息。

报文

DNS定义两种报文 :查询报文和响应报文,两者都有12个字节的头和查询问题。

公共DNS服务器

常用的公共DNS服务器

  • 谷歌:主DNS:8.8.8.8,辅DNS:8.8.4.4
  • Cloudflare:DNS:1.1.1.1
  • Norton ConnectSafe:主DNS:199.85.126.10,辅DNS:199.85.127.10
  • 114DNS:部署在国内,主DNS114.114.114.114,辅114.114.115.115
  • CNNIC:中国互联网络信息中心推出SDNS,主DNS1.2.4.8,辅DNS210.2.4.8

域名服务器

有以下几种类型

  • 主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改
  • 辅助域名服务器:当主域名服务器出现故障、关闭或负载过重时,辅助域名服务器作为主域名服务器的备份提供域名解析服务。辅助域名服务器中的区域文件中的数据是从另外的一台主域名服务器中复制过来的,是不可以修改的
  • 缓存域名服务器:从某个远程服务器取得每次域名服务器的查询回答,一旦取得一个答案就将它放在高速缓存中,以后查询相同的信息就用高速缓存中的数据回答,缓存域名服务器不是权威的域名服务器,因为它提供的信息都是间接信息
  • 转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

DNS记录

DNS Record,即由DNS构建起的域名与IP地址之间的对应关系。通过设置不同的解析记录,可以实现对主机名不同的解析效果,从而满足不同场景下的域名解析需求。域名解析记录主要有以下几种类型。

A记录

A(Address)记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上,同时也可以设置域名的子域名。A记录就是指定域名对应的IP地址。如添加一条A记录将www.google.com的主机指向IP192.168.1.1,那么当你访问www.google.com主机时就会解析到192.168.1.1这个IP上。

CNAME记录

canonical name,通常称别名解析,是主机名到主机名的映射。当需要将域名指向另一个域名,再由另一个域名提供IP地址,就需要添加CNAME记录,最常用到CNAME的场景包括做CDN、企业邮箱、全局流量管理等。与A记录不同的是,CNAME别名记录设置的值不是一个固定的IP,而是主机的别名地址。

别名解析可以提供更大的灵活性,便于统一管理。比如,当主机因某种因素的影响需要更换IP时,如果域名做CNAME记录,就可以同时更新别名的解析指向,不需要进行新的解析操作。

NS记录

Name Server记录。如果需要把子域名交给其他DNS服务商解析,就需要添加NS记录。NS记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。NS记录中的IP即为该DNS服务器的IP地址。大多数域名注册商默认用自己的NS服务器来解析用户的DNS记录。DNS服务器NS记录地址一般以以下的形式出现:ns1.domain.comns2.domain.com等。

SOA记录

Start Of Authority,SOA,是起始授权机构记录,说明在众多NS记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。

SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。

AAAA记录

AAAA记录是用来将域名解析到IPv6地址的DNS记录。用户可以将一个域名解析到IPv6地址上,也可以将子域名解析到IPv6地址上。国内大多数IDC不支持AAAA记录的解析,因此如果想进行AAAA记录解析,则需对域名NS记录设置一些专业的域名解析服务商,由他们提供AAAA记录的设置。

TXT记录

TXT记录,一般指某个主机名或域名的标识和说明。如:admin IN TXT “管理员, 电话:XXXXXXXXXXX”,mail IN TXT “邮件主机,存放在xxx , 管理人:AAA”,Jim IN TXT “contact: abc@mailserver.com”,也就是说,通过设置TXT记录内容可以使别人更方便地联系到你。TXT 记录常用的方式还有做 SPF 记录(反垃圾邮件)和SSL证书的DNS验证等。

MX记录

MX(Mail Exchanger)记录是邮件交换记录,主要用于邮箱解析,在邮件系统发送邮件时根据收信人的地址后缀进行邮件服务器的定位。MX记录允许设置一个优先级,当多个邮件服务器可用时,会根据该值决定投递邮件的服务器。

MX记录的权重对Mail服务非常重要,当发送邮件时,Mail服务器先对域名进行解析,查找MX记录。先找权重数最小的服务器,如果能连通,那么就将服务器发送过去;如果无法连通此服务器,才将邮件发送到权重更高的mail服务器上。

PTR记录

PTR是pointer的简写,即反向DNS,domain name pointer,是一个指针记录,用于将一个IP地址映射到对应的主机名,也可以看成是A记录的反向,即通过IP访问域名。

SRV记录

即服务定位(SRV)资源记录,用于定义提供特定服务的服务器的位置,如主机(hostname),端口(port number)等。

URL转发

URL转发,是指通过服务器的特殊设置,将当前访问的域名指向另一个指定的网络地址。根据目标地址的隐藏与否,URL转发可以分为显性URL和隐性URL两种。

显性URL:将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址,地址栏显示为目标网站地址。

隐性URL:与显性URL类似,但隐性转发会隐藏真实的目标地址,地址栏中显示为仍为此前输入的地址。

共存冲突

记录类型也会有共存冲突,在RR(Resource Record)值相同的情况下,同一条线路下,在几种不同类型的解析中不能共存(X为不允许):

  • X:在相同的RR值情况下,同一条线路下,不同类型的解析记录不允许共存。如:已经设置了www.example.com的A记录,则不允许再设置www.example.com的CNAME记录;
  • 无限制:在相同的RR值情况下,同一条线路下,不同类型的解析记录可以共存。如:已经设置了www.example.com的A记录,则还可以再设置www.example.com的MX记录;
  • 可重复:指在同一类型下,同一条线路下,可设置相同的多条RR值。如:已经设置www.example.com的A记录,还可以再设置www.example.com的A记录。

解析步骤

可提供域名服务的包括本地缓存、本地域名服务器、权限域名服务器、顶级域名服务器以及根域名服务器。DNS主机名解析的查找顺序是,先查找客户端本地缓存,如果没有成功,则向DNS服务器发出解析请求。本地缓存是内存中的一块区域,保存着最近被解析的主机名及其IP地址映像。由于解析程序缓存常驻内存中,所以比其他解析方法速度快。当一个主机发出DNS查询报文时,这个查询报文就首先被送往该主机的本地域名服务器。本地域名服务器离用户较近,当所要查询的主机也属于同一个本地ISP时,该本地域名服务器立即就能将所查询的主机名转换为它的IP地址,而不需要再去询问其他的域名服务器。每一个区都设置有域名服务器,即权限服务器,它负责将其管辖区内的主机域名转换为该主机的IP地址。在其上保存有所管辖区内的所有主机域名到IP地址的映射。顶级域名服务器负责管理在本顶级域名服务器上注册的所有二级域名。当收到DNS查询请求时,能够将其管辖的二级域名转换为该二级域名的IP地址。或是下一步应该找寻的域名服务器的IP地址。根域名服务器是最高层次的域名服务器。每一个根域名服务器都要存有所有顶级域名服务器的IP地址和域名。当一个本地域名服务器对一个域名无法解析时,就会直接找到根域名服务器,然后根域名服务器会告知它应该去找哪一个顶级域名服务器进行查询。

递归查询

最常见也是默认的一种解析方式。如果客户端配置的本地域名服务器(Local DNS服务器)不能解析的话,则后面的查询过程全部由本地域名服务器代替DNS客户端进行查询,直到本地域名服务器从权威域名服务器得到正确的解析结果,然后由本地域名服务器告诉DNS客户端查询的结果。

递归解析的查询过程大致如下:
在这里插入图片描述

  1. 客户端向本机配置的本地域名服务器发起DNS域名查询请求
  2. 本地域名服务器收到请求后,会先查询本地缓存,如果有记录值会直接返回给客户端;如果没有记录,则本地域名服务器会向根域名服务器发起请求
  3. 根域名服务器收到请求后,会根据所要查询域名中的后缀将所对应的顶级域名服务器(如.com.cn等)返回给本地域名服务器
  4. 本地域名服务器根据返回结果向所对应的顶级域名服务器发起查询请求
  5. 对应的顶级域名服务器在收到DNS查询请求后,也是先查询自己的缓存,如果有所请求域名的解析记录,则会直接将记录返回给本地域名服务器,然后本地域名服务器再将记录返回给客户端,完成整个DNS解析过程
  6. 如果顶级域名服务器没有记录值,就会将二级域名对应的服务器地址返回给本地域名服务器,本地域名服务器再次对二级域名服务器发起请求,如此类推,直到最终对应区域的权威域名服务器返回结果给本地域名服务器。然后本地域名服务器将记录值返回给DNS客户端,同时缓存本地查询记录,以便在TTL值内用户再次查询时直接将记录返回给客户端

在整个递归查询过程中,除一开始客户端向本地域名服务器发起查询请求外,其余各个环节均是以本地域名服务器为中心进行迭代查询,DNS客户端一直处于等待状态,直到本地域名服务器发回最终查询结果。相当于,在整个查询环节中本地域名服务器承担中介代理的角色。

迭代查询

迭代查询则是指所有查询工作全部由客户端自己进行,除此之外,整个查询路径和步骤与递归查询没有太大区别。
在这里插入图片描述
首先客户端向本地域名服务器发起请求,如果本地域名服务器没有缓存记录,客户端便会依次对根域名服务器、顶级域名服务器和二级域名服务器等发起迭代查询,直到获得最终的查询结果。

在以下条件之一满足时,就会采用迭代解析方式:

  1. 在查询本地域名服务器时,如果客户端的请求报文中没有申请使用递归查询,即在DNS请求报文中的RD字段没有设置为1
  2. 客户端在DNS请求报文中申请使用递归查询,但所配置的本地域名服务器禁止使用递归查询,即在应答DNS报文头部的RA字段设置为0

对比

递归查询的查询方式为:当用户发出查询请求时,本地服务器要进行递归杳询。这种查询方式要求服务器彻底地进行名字解析,并返回最后的结果——IP地址或错误信息。如果查询请求在本地服务器中不能完成,那么服务器就根据它的配置向域名树中的上级服务器进行查询,在最坏的情况下可能要查询到根服务器。每次查询返回的结果如果是其他名字服务器的IP地址,则本地服务器要把查询请求发送给这些服务器,故进一步的查询。
迭代查询的查询方式为:服务器与服务器之间的查询采用迭代的方式进行,发出查询请求的服务器得到的响应可能不是目标的IP地址,而是其他服务器的引用(名字和地址),那么本地服务器就要访问被引用的服务器,做进一步的查询。如此反复多次,每次都更接近目标的授权服务器,直至得到最后的结果——目标的IP地址或错误信息。

根域名服务器为众多请求提供域名解析,若采用递归方式会大大影响性能。

常见问题

  • DNS解析修改后没有立即生效

DNS解析完成后不会立即生效,全球刷新生效需要等待一定的时间。如果只是修改解析记录,刷线时间根据设置的TTL值而定。修改DNS解析服务器,则需要等待24-48小时才能实现全球服务器的同步生效。

  • 添加解析记录失败,显示记录已存在

域名解析记录重复添加,删除相同的条目后,重新添加即可。为了避免出现此问题,最好是删除全部的默认记录之后,再重新添加。

  • 解析后访问域名,显示的不是自己的网站

可能有多方面原因:1.设置URL转发,检查下解析记录中是否有该类型记录;2.可能遭到DNS劫持,先检查解析记录是否被篡改,认真核对解析记录,编辑更正有问题的项目,或删除记录重新添加;3.修改解析记录还没有生效,这种情况在确认解析记录无误之后,等待解析生效或刷新本地DNS缓存再试。

  • 解析后访问域名,显示无法访问此网站。

查看域名指向的IP是否为网站所在主机的IP地址(即解析记录里设置的IP)。如正确,则问题可能出在网站方面;如不正确,可能有两方面原因:一是解析问题,检查核对解析设置;二是解析未生效,刷新本地DNS缓存,查看IP是否变为正确的了,不行的话等一会儿,等待解析生效后再试。

安全

DNS在设计之初只考虑实用性,没有相应的验证机制,安全性较低,经常成为网络攻击的重点对象。

针对DNS的攻击主要有两种:

  • DNS DDoS攻击:Denial-of-service attack,拒绝服务攻击,对DNS服务器发动攻击,造成DNS服务器的线路拥堵或宕机。DNS服务器发生故障,将无法及时回应递归服务器发起的解析请求,从而会导致其所管辖的所有域名都无法正常解析,这样造成的危害比单独针对web服务器发起攻击要大得多
  • DNS劫持:通过错误的域名解析记录代替正确的记录返回给客户端,将客户端引导至错误的IP地址,达到流量劫持,获取非法收益的目的。DNS劫持可通过DNS缓存投毒、修改NS记录等方式达成。

提升DNS安全的策略:

  • 构建DNS外部安全防护体系:将边界路由器、防火墙策略、端口管理、负载均衡等软硬件防护策略结合起来,构建起坚实的外部安全防护体系
  • 设置DNS内部安全策略:使用最新版的bind,可以消除软件设计上的明显漏洞,大大提升DNS安全性;通过DNSSEC安全协议为解析数据进行加密,从而确保DNS解析数据不被篡改
  • 使用高防DNS:高防DNS,通过弹性宽带功能,可以有效抵御超大流量解析访问和恶意的DNS DDoS攻击,此外高防DNS具备流量清洗、健康监测和DDoS防火墙改功能,可以对DDoS攻击形成有效的清洗和防御

DNS劫持

DNS劫持的危害是双向多面的。对于用户而言,它通过将用户引导至与原网站十分相似的网站,并诱导用户输入账号、密码、身份证等敏感信息,从而造成个人信息泄露、财产损失等风险。对于企业机构而言,它会让企业机构失去对域名的控制权,导致站点不能访问,正常流量流失,业务无法正常运行,进而对企业形象和经济利益造成影响。

当客户端发起域名请求时,本地递归服务器(大多数情况下为运营商DNS)或公共DNS会通过向根域名服务器、顶级域名服务器到权威域名服务器一级一级查询,并将最终查询结果返回给客户端。

除了这种典型解析流程外,由于DNS缓存的存在,当客户端发起请求时,浏览器缓存、hosts文件、本地递归服务器DNS缓存会先将本地储存的解析记录直接告知客户端,从而省去全球递归查询的步骤。

从上面DNS解析流程中可以看出,一次完整的DNS查询具备以下两个特点:

  • 链路长,查询过程包含多次、多级网络通信;
  • 参与角色多,查询过程涉及客户端(浏览器缓存、hosts文件)、递归解析服务器、权威解析服务器等角色。

在一次完整DNS查询链路的各个环节,都可以通过技术手段将域名解析记录进行篡改,将域名指向劫持到错误的IP地址上。

类型

  • 本地DNS劫持
  • DNS解析路径劫持

本地DNS劫持是指发生在客户端侧的各类DNS劫持:

  • 通过木马或恶意程序入侵客户端,篡改DNS缓存、hosts文件、DNS服务器地址等DNS相关配置
  • 利用路由器漏洞入侵路由器,并针对路由器中的DNS缓存进行篡改

DNS解析路径劫持
指发生在客户端和DNS服务器网络通信间的DNS劫持方式。通过对DNS劫持报文在查询阶段的路径进行划分,又可将DNS劫持分为四类:

  • DNS请求转发:通过中间盒子、软件等技术手段将用户发出的DNS请求重定向到由攻击者控制的流氓DNS服务器,从而将其重定向到恶意站点
  • DNS请求复制:将DNS查询复制到网络设备,并在用户发起请求时先于正常应答返回DNS劫持的结果,这种方式表现为一个DNS查询抓包返回两个不同的应答
  • DNS请求代答:通过利用网络设备或软件代替DNS服务器对DNS查询进行应答
  • DNS缓存感染:指攻击者在递归解析服务器投入错误的缓存信息,当访问者发起解析请求时,递归服务器就会从DNS缓存中将错误的解析记录返回,从而将用户引导至错误的网站。

DNS污染

DNS污染又称域名服务缓存投毒,是指通过制作域名服务数据包,将域名指向不正确的IP地址。在正常的DNS解析过程中,下一级域名服务器会将从上游域名服务器获得的解析记录保存一段时间,当在TTL值失效之前,有相同域名的解析请求时,就会直接将解析记录告知客户端,而无需进行全球范围的递归查询,这样既加快查询时间,也降低服务器工作压力。

但在这个过程中,如果局域域名服务器的缓存受到污染,就会告知客户端错误的解析记录,从而将用户指向错误的网站。这种攻击方式,被称为DNS污染。

使用场景

  1. 某些网络运营商为了达成某些目的,对DNS进行某些操作,就会导致使用ISP正常上网设置无法通过域名访问正确的IP地址
  2. 如果掌握部分国际DNS根目录服务器或镜像,也可通过DNS污染方式,屏蔽对特定网站的访问,如Google、YouTube等

解决DNS污染

  • 需要能够替换DNS解析服务器。通常,域名注册企业提供免费的DNS解析服务。域名提供商可以提供许多免费的DNS解析服务,并且其解析速度非常快,多组DNS服务器,可以更好地避免被DNS污染。
  • 使用第三方DNS解析服务及CDN服务,CDN服务商会提供他们的DNS服务器解析服务和CDN的网络IP地址。

考题

主机PC对某个域名进行查询,最终由该域名的授权域名服务器解析并返回结果,查询过程如下。不合理之处为(A)。
在这里插入图片描述
A. 根域名服务器采用递归查询,影响性能
B. 根域名服务器采用迭代查询,影响性能
C. 中介域名服务器采用迭代查询,加重根域名服务器负担
D. 中介域名服务器采用递归查询,加重根域名服务器负担

参考

  • 一文读懂DNS解析原理和流程
  • 如何提升DNS解析安全?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/622876.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

blender cell fracture制作破碎效果,将一个模型破碎成多个模型

效果: 1.打开编辑-》偏好设置。搜索cell,勾选上如下图所示的,然后点击左下角菜单里的保存设置。 2.选中需要破碎的物体,按快捷键f3(快速搜索插件),搜索cell fracture。 3.调整自己需要的参数配置…

机器学习之sklearn基础教程:新手入门指南

引言 在机器学习领域,sklearn(Scikit-learn)是一个广受欢迎的开源库,它为各种常见的机器学习算法提供了高效的实现。对于初学者来说,sklearn 提供了一个简单且易于上手的工具,可以用来实现分类、回归、聚类…

git使用及github

文章目录 操作命令基本组成框架在开发中git分支的重要性 github的使用将本地仓库关联到远程仓库将远程仓库关联到本地和拉取指定分支、切换远程分支提交本地仓库到远程仓库修改分支名称 保存当前工作切换分支将别的分支修改转移到自己的分支远程删除分支后本地git branch -a依然…

MongoDB事务的理解和思考

3.2版本开始引入Read Concern,解决了脏读,支持Read Commit 3.6版本引入Session,支持多个请求共享上下文,为后续的事务支持做准备 4.0支持多行事务,但4.0的事务只是个过渡的版本 4.2开始支持多文档事务 1. Mongo的架…

具备教学意义的实操(用栈实现队列)

具备教学意义的实操(用队列实现栈)-CSDN博客https://blog.csdn.net/Jason_from_China/article/details/138729955 具备教学意义的实操(用栈实现队列) 题目 232. 用栈实现队列 - 力扣(LeetCode) ​ 逻辑​​…

一、VIsual Studio下的Qt环境配置(Visual Studio 2022 + Qt 5.12.10)

一、下载编译器Visual Studio2022和Qt 5.12.10 Visual Studio 2022 社区版就够学习使用了 Qt5.12.10 安装教程网上搜,一大堆 也很简单,配置直接选默认,路径留意一下即可 二、配置环境 Ⅰ,配置Qt环境变量 系统变量下的Path&a…

C++的数据结构(五):树和存储结构及示例

在计算机科学中,树是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。这种数据结构以一系列连接的节点来形成树形结构。在C中,树的概念和存储结构是实现各种复杂算法和…

Golang | Leetcode Golang题解之第87题扰乱字符串

题目: 题解: func isScramble(s1, s2 string) bool {n : len(s1)dp : make([][][]int8, n)for i : range dp {dp[i] make([][]int8, n)for j : range dp[i] {dp[i][j] make([]int8, n1)for k : range dp[i][j] {dp[i][j][k] -1}}}// 第一个字符串从 …

61、内蒙古工业大学、内蒙科学技术研究院:CBAM-CNN用于SSVEP - BCI的分类方法[脑机二区还是好发的]

前言: 之前写过一篇对CBAM模型改进的博客,在CBAM中引入了ECANet结构,对CBAM中的CAM、SAM模块逐一改进,并提出ECA-CBAM单链双链结构,我的这个小的想法已经被一些同学实现了,并进行了有效的验证,…

算法-卡尔曼滤波之为什么要使用卡尔曼滤波器

假设使用雷达来预测飞行器的位置; 预先的假设条件条件: 1.激光雷达的激光束每5s发射一次; 2.通过接受的激光束,雷达估计目标当前时刻的位置和速度; 3.同时雷达要预测下一时刻的位置和速度 根据速度,加速度和位移的…

ROS2 - 创建项目 (Ubuntu22.04)

本文简述:在 Ubuntu22.04 系统中使用 VS CODE 来搭建一个ROS2开发项目。 1. 创建工作空间 本文使用 Ubuntu 22.04, 已安装配置完成 VS Code,C 环境(g/gdb) 1.1 创建目录 选择文件夹作为工作空间,并在这…

Django开发实战之定制管理后台界面及知识梳理(下)

接上一篇:Django开发实战之定制管理后台界面及知识梳理(中) 1、前台设置 1、隐藏路由 当你输入一个错误地址时,可以看到这样的报错: 从这样的报错中,我们可以看到,这个报错页面暴漏了路由&a…

数据结构-题目

1.已知一颗完全二叉树的第6曾(设根为第1层),有8个结点,则完全二叉树的结点个数,最少和最多分别是多少? 因此最少为39,最多为111 2.假设一棵三叉树的结点数为50,则它的最小高度为&…

【数据结构与算法 刷题系列】合并两个有序链表

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:数据结构与算法刷题系列(C语言) 目录 一、问题描述 二、解题思路详解 合并两个有序链表的思路 解题的步…

[PythonWeb:Django框架]:前后端请求调用;

文章目录 接着上篇项目app包下面创建static包,引入jquery,bootstrap 相关js文件views.py编写apicompute文件夹下面的urls.py路由模块引入views.py刚刚定义的函数html发送ajax请求 接着上篇 https://blog.csdn.net/Abraxs/article/details/138739727?sp…

【pouchdb-可视化工具 】

最近使用pouchdb,想找个其对应的可视化工具,可以对数据库进行操作。 找了好久才找到,网上有说先同步到couchdb,再用couchdb的可视化工具查看,其实没有那么麻烦,pouchdb的可视化工具其实藏在另外的pouchdb-…

让创意在幻觉中肆虐: 认识Illusion Diffusion AI

人工智能新境界 在不断发展的人工智能领域,一款非凡的新工具应运而生,它能将普通照片转化为绚丽的艺术品。敬请关注Illusion Diffusion,这是一个将现实与想象力完美融合的AI驱动平台,可创造出迷人的视错觉和超现实意境。 AI算法的魔力所在 Illusion Diffusion 的核心是借助先进…

react Effect副作用 - 避免滥用Effect

react Effect副作用 - 避免滥用Effect react Effect副作用基础概率什么是纯函数? 什么是副作用函数?纯函数副作用函数 什么时候使用Effect如何使用Effect 避免滥用Effect根据 props 或 state 来更新 state当 props 变化时重置所有 state将数据传递给父组件获取异步数据 react…

持续集成-Git

重要步骤命令 git init (初始化一个仓库) git add [文件名] (添加新的文件) git commit -m [关于本次提交的相关说明] (提交) git status (查看文件状态) git diff (如果文件改变,比较两个文件内容) git add[文件名] || git commit -a -m [关于本次提交的相关说…

RiProV2主题美化【支付页弹窗增加价格提示语】Ritheme主题美化RiProV2-网站WordPress美化二开

背景: 楼主的网站是用WordPress搭建的,并使用了正版主题RiProV2,但RiProV2在支付弹窗页没有价格,只在文章详情页会展示价格。本文就是美化这个支付弹窗,在支付弹窗页把价格字段加上,如下图所示: 美化前: 美化后 美化步骤: (1)定位到文件:/www/wwwroot/www.uu2i…