一种保留原域名的外链改写方法及系统
文献发布时间:2023-06-19 10:27:30
技术领域
本发明涉及链接、域名算法、天窗问题等技术领域,具体涉及一种保留原域名的外链改写方法及系统。
背景技术
IPV4地址空间的不足阻碍和限制了互联网的发展,因此IPV6取代IPV4已成必然趋势。在进行源站IPV6改造过程中,如果仅做简单的IPV4地址到IPV6地址的转换,那么网站用到外链资源的源站如果不支持IPV6,则在纯IPV6的环境下,无法访问这些外链资源,导致天窗问题。当前有些进行源站IPV6升级改造方案会对网站第三方外链进行改写,解决天窗问题。
现有的改写方法通常有:
1.将域名直接替换为固定的支持IPV6解析的域名,然后将原始的域名放在域名后的URI或者URL查询串中。这种改写方式存在的问题:实际操作中,发现很多js脚本会使用到URI或者查询串的逻辑,这种修改方式会导致URI或者查询串内容改变,导致js执行异常,这种方式较容易导致页面出错。
2.简单地将域名中“.”的替换为“-”。这种改写方法在URL域名还原的时候容易出错,因为实际的原始域名中可能是包含“-”的,还原的时候会导致“-”被错误地还原为“.”。
3.以上两种改写方法使得原始的域名被改变,网站的域名看起来会比较不自然,会让用户以为自己访问的页面被劫持篡改了。
4.没有对改写后的URL没有进行校验,容易被其他人攻击。
综上现有解决天窗问题的外链改写方式存在如下弊端:
1.替换域名,将原始域名内容放在URI或者查询串的方式,可能会影响js逻辑的执行,导致页面出错。
2.简单地将“.”替换为“-”,容易出现原始域名确实包含“-”,被错误还原为“.”。
3.改变了原始域名,让用户以为自己访问的页面被劫持篡改。
4.没有对改写后的URL进行检验,无法确保改写后过来访问的URL是系统改写的,容易导致他人使用简单的规则进行攻击。
发明内容
针对现有技术中的缺陷,本发明提供一种保留原域名的外链改写方法及系统,在不改变外链原始的域名形式的情况下,使得外链支持IPV6访问,对HTTPS的外链资源能够支持IPV6访问并且访问正常(访问内容正确并且不提示证书出错),可以对改写后的URL访问进行校验,避免他人攻击。
一种保留原域名的外链改写方法,外链改写步骤包括:当进入外链改写步骤时,在外链域名的中添加标识串;再为添加标识串后的外链域名添加安全校验码、支持IPV6解析的泛域名;获取改写后的外链域名;所述改写后的外链域名格式为:替换分隔符后的外链域名+安全校验码+标识串+泛域名。
一种保留原域名的外链改写系统,包括所述的一种保留原域名的外链改写方法,还包括CDN边缘缓存装置、IPV6天窗改造装置、外链源站以及客户源站,其中:所述CDN边缘缓存装置用于接收用户请求或转发用户请求,并缓存或向用户返回对应响应内容;所述IPV6天窗改造装置用于接收转发的用户请求或回源获取响应,并进行响应内容进行外链资源改写;所述客户源站用于响应对应客户域名的资源;所述外链源站用于响应对应外链域名的资源。
本发明一种保留原域名的外链改写方法及系统在原始域名后面添加支持IPV6的泛域名,使得域名可以解析得到IPV6地址。针对HTTPS的链接转换为HTTP链接进行访问。改写后的URL包含校验码,可以对改写后的URL访问进行校验,避免他人攻击。
进一步的,所述标识串包括HTTP协议的链接和/或HTTPS协议的链接。
进一步的,将所述HTTPS协议的链接转换为HTTP协议的链接。
进一步的,所述安全校验码设置于所述泛域名前任意位置。
进一步的,为所述替换分隔符后的外链域名添加客户信息、自定义字符串。
进一步的,所述的一种保留原域名的外链改写方法,还包括:当用户访问CDN边缘节点并发起用户请求时,进行缓存数据检测;若检测存在与所述用户请求对应的缓存数据时,则直接响应并返回给用户对应的缓存数据;若检测不存在与所述请求对应的缓存数据时,则转发所述用户请求,并进行外链改写步骤,返回改写后的响应内容,用户根据该改写后的响应内容继续获取内嵌的资源。
进一步的,所述的一种保留原域名的外链改写方法,还包括:当接收到用户请求时,判断所述用户是否是IPV6用户,若判断为是IPV6用户,则对页面内容嵌入的外链进行改写,若判断为不是IPV6用户,则直接返回响应,不开启外链改写步骤。
进一步的,所述的一种保留原域名的外链改写方法,还包括安全性判断:获取外链域名,对所述外链域名的安全校验码进行安全校验;若是校验成功,则返回至用户按照请求内容继续访问;若是校验失败,则关闭连接或返回403拒绝响应。
进一步的,所述安全性判断采用MD5信息摘要算法。
本发明的有益效果体现在:
本发明一种保留原域名的外链改写方法及系统,在不改变外链原始的域名形式的情况下,使得外链支持IPV6访问,对HTTPS的外链资源能够支持IPV6访问并且访问正常(访问内容正确并且不提示证书出错),可以对改写后的URL访问进行校验,避免他人攻击;在原始域名后面添加支持IPV6的泛域名,使得域名可以解析得到IPV6地址。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明CDN边缘缓存装置的运行流程示意图;
图2为本发明IPV6天窗改造装置的运行流程示意图;
图3为本发明安全判断以及URL还原的流程示意图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
实施例
如图1-3所示:
一种保留原域名的外链改写方法,外链改写步骤包括:当接收到外链改写指令时,在外链域名的中添加标识串;再为添加标识串后的外链域名添加安全校验码、支持IPV6解析的泛域名;获取改写后的外链域名;所述改写后的外链域名格式为:替换分隔符后的外链域名+安全校验码+标识串+泛域名。
一种保留原域名的外链改写系统,包括所述的一种保留原域名的外链改写方法,还包括CDN边缘缓存装置、IPV6天窗改造装置、外链源站以及客户源站,其中:所述CDN边缘缓存装置用于接收用户请求或转发用户请求,并缓存或向用户返回对应响应内容;所述IPV6天窗改造装置用于接收转发的用户请求或回源获取响应,并进行响应内容进行外链资源改写;所述客户源站用于响应对应客户域名的资源;所述外链源站用于响应对应外链域名的资源。
本发明一种保留原域名的外链改写方法及系统在原始域名后面添加支持IPV6的泛域名,使得域名可以解析得到IPV6地址。针对HTTPS的链接转换为HTTP链接进行访问。改写后的URL包含校验码,可以对改写后的URL访问进行校验,避免他人攻击。
在本实施例中,所述标识串包括HTTP协议的链接和/或HTTPS协议的链接。
在本实施例中,将所述HTTPS协议的链接转换为HTTP协议的链接。
在本实施例中,所述安全校验码设置于所述泛域名前任意位置。
在本实施例中,为所述替换分隔符后的外链域名添加客户信息、自定义字符串。
例如:
http的外链域名
改写后的域名为:www.ipv4.com.1b3a.wanwuelian.com;
https的外链域名
改写后的域名为:www.ipv4.com.1b3a.s.wanwuelian.com;
具体改写方法描述如下:
a)保留原始域名不变,最后添加支持IPV6的泛域名,比如“.wanwuelian.com”,或者客户自己的域名“.fujian.gov.cn”;
b)安全校验码的位数不局限于例子上的4位,也可以是6位、8位等等;
c)安全校验码的计算方法可以是:原始域名+客户信息+密钥串进行MD5计算然后截取其中几位,但不仅限于此种方法;
d)https标识串用于改写后域名还原的时候可以区分出来原始URL是HTTP链接还是HTTPS链接;
e)基本思想是保留原始域名不变,对HTTPS链接转换为HTTP链接处理,添加检验码(可选)。
用户接收响应后,浏览器会对HTTP响应内容进行解析,继续访问响应内容里包含的资源文件,资源文件包含我们改写后的外链URL;
用户访问改写后的外链资源到CDN边缘节点。
边缘缓存服务器进行外链的安全性判断,确定是否是我们改写的外链,还是非法请求,如果是非法请求则关闭连接或者返回403拒绝响应。
安全性判断过程:获取改写后的外链资源域名中的安全校验串进行安全校验。
按照改写规则进行原始的URL域名的还原:
例如:
还原为:
http://www.ipv4.com/1.jpg;
还原为:
https://www.ipv4.com/2.jpg
边缘缓存服务器如果有缓存则响应缓存,如果没有缓存,则将请求转发到还原后的URL回源站进行请求获取响应。
CDN边缘缓存服务器接收到外链改造装置的响应,如果可缓存,则存储到磁盘,并发送响应给用户。
在本实施例中,所述的一种保留原域名的外链改写方法,还包括:当用户访问CDN边缘节点并发起用户请求时,进行缓存数据检测;若检测存在与所述用户请求对应的缓存数据时,则直接响应并返回给用户对应的缓存数据;若检测不存在与所述请求对应的缓存数据时,则转发所述用户请求,并进行外链改写步骤,返回改写后的响应内容,用户根据该改写后的响应内容继续获取内嵌的资源。
在本实施例中,所述的一种保留原域名的外链改写方法,还包括:当接收到用户请求时,判断所述用户是否是IPV6用户,若判断为是IPV6用户,则对页面内容嵌入的外链进行改写,若判断为不是IPV6用户,则直接返回响应,不开启外链改写步骤。
在本实施例中,所述的一种保留原域名的外链改写方法,还包括安全性判断:获取外链域名,对所述外链域名的安全校验码进行安全校验;若是校验成功,则返回至用户按照请求内容继续访问;若是校验失败,则关闭连接或返回403拒绝响应。
在本实施例中,所述安全性判断采用MD5信息摘要算法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
- 一种保留原域名的外链改写方法及系统
- 一种固定长度域名的外链改写分布式系统