一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

静态页面访问方法、系统、装置、设备及存储介质与流程

2022-04-27 06:28:46 来源:中国专利 TAG:


1.本技术涉及区块链技术领域,尤其涉及一种静态页面访问方法、系统、装置、设备及存储介质。


背景技术:

2.区块链本身具有不可篡改的特性,在记录一些不用改动或者改动量不大的文字或者媒体上,有良好的可追溯和验证的特性。
3.现在区块链服务,无法直接将链上的内容以可读的方式提供给内容接受者,因此需要一些机制去可靠的提供一些转换机制来使得内容可读。目前,一种主流的提供内容的方式是web页面的方式。
4.现有技术中,在区块链上增加应用层来提供访问页面,但是应用层具有可篡改性,不仅增加了区块链网络的负载,而且没有针对客户端的访问验证机制,无法保证访问安全。


技术实现要素:

5.本技术提供了一种静态页面访问方法、系统、装置、设备及存储介质,用以解决现有技术中,无法保证访问安全的技术问题。
6.第一方面,本技术实施例提供了一种静态页面访问方法,适用于客户端,包括:
7.获取待访问的目标区块链节点的当前时间戳;
8.获取所述目标区块链节点在所述当前时间戳的预设时长之前交易的最后一个目标哈希值;
9.基于所述当前时间戳和所述目标哈希值,生成验证脚本;
10.向所述目标区块链节点发送所述验证脚本;
11.在确定所述目标区块链节点对所述验证脚本验证通过后,获取所述静态页面。
12.可选的,所述基于所述当前时间戳和所述目标哈希值,生成验证脚本,包括:
13.将所述当前时间戳的字符串形式和所述目标哈希值的字符串形式连接,生成目标字符串;
14.基于所述目标字符串,计算所述验证脚本;其中,所述验证脚本满足如下条件:
15.在利用加密算法对所述目标字符串与所述验证脚本的和进行计算得到的字符串结果中,存在目标字符在所述字符串结果中出现的第一次数以及在所述目标字符串中出现的第二次数之和大于或等于预设次数;且所述验证脚本的长度小于或等于预设长度。
16.可选的,所述获取待访问的目标区块链节点的当前时间戳,包括:
17.向所述目标区块链节点发送访问所述静态页面的访问请求;
18.接收所述目标区块链节点响应所述访问请求,反馈的所述当前时间戳。
19.可选的,所述静态页面中包括所述目标区块链节点的交易哈希和内容哈希;所述获取所述静态页面之后,还包括:
20.从所述静态页面中,获取所述交易哈希和所述内容哈希;
21.将所述交易哈希和所述内容哈希存储在所述客户端的目标路径下。
22.可选的,所述从所述静态页面中,获取所述交易哈希和所述内容哈希之后,还包括:
23.基于所述内容哈希,对所述静态页面进行验核。
24.第二方面,本技术实施例提供了一种静态页面访问方法,适用于目标区块链节点,所述方法包括:
25.获取客户端发送的访问所述静态页面的访问请求;
26.响应所述访问请求,向所述客户端发送所述目标区块链节点的当前时间戳;所述当前时间戳用于供所述客户端生成验证脚本;
27.获取所述验证脚本,在对所述验证脚本验证通过后,向所述客户端发送所述静态页面。
28.第三方面,本技术实施例提供了一种静态页面访问系统,包括:客户端和目标区块链节点;
29.所述客户端,用于向所述目标区块链节点发送访问所述静态页面的访问请求;
30.所述目标区块链节点,用于获取所述访问请求,并响应所述访问请求,向所述客户端发送所述目标区块链节点的当前时间戳;
31.所述客户端,用于获取所述当前时间戳;获取所述目标区块链节点在所述当前时间戳的预设时长之前交易的最后一个目标哈希值;基于所述当前时间戳和所述目标哈希值,生成验证脚本;向所述目标区块链节点发送所述验证脚本;
32.所述目标区块链节点,用于获取所述验证脚本;在对所述验证脚本验证通过后,则向所述客户端发送所述静态页面。
33.第四方面,本技术实施例提供了一种静态页面访问装置,适用于客户端,所述装置包括:
34.第一获取模块,用于获取待访问的目标区块链节点的当前时间戳;
35.第二获取模块,用于获取所述目标区块链节点在所述当前时间戳的预设时长之前交易的最后一个目标哈希值;
36.生成模块,用于基于所述当前时间戳和所述目标哈希值,生成验证脚本;
37.发送模块,用于向所述目标区块链节点发送所述验证脚本;
38.第三获取模块,在确定所述目标区块链节点对所述验证脚本验证通过后,获取所述静态页面。
39.第五方面,本技术实施例提供了一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
40.所述存储器,用于存储计算机程序;
41.所述处理器,用于执行所述存储器中所存储的程序,实现第一方面或第二方面所述的静态页面访问方法。
42.第六方面,本技术实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面所述的静态页面访问方法。
43.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术实施例提供的该方法,获取当前时间戳的预设时长之前交易的最后一个目标哈希值,并基于所述
当前时间戳和所述目标哈希值,生成验证脚本,验证脚本验证通过后,才允许访问静态页面。即生成的验证脚本是基于每次访问动态变化的,并不是固定不变的,不容易被破解。而且,生成验证脚本的过程在客户端中完成,不需要应用层,降低了区块链本身的负载,能够在不增加区块链网络的负载的情况下,实现针对客户端访问验证,能够保证访问安全。而且,通过获取当前时间戳的预设时长之前交易的最后一个目标哈希值,并基于所述当前时间戳和所述目标哈希值,生成验证脚本,能够防止攻击者提前计算出验证脚本,能够防止恶意访问或者分布式拒绝服务攻击(ddos攻击)。
附图说明
44.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
46.图1为本技术实施例提供的一种静态页面访问系统的系统架构示意图;
47.图2为本技术实施例提供的适用于客户端的静态页面访问方法的流程示意图;
48.图3为本技术实施例提供的适用于目标区块链节点的静态页面访问方法的流程示意图;
49.图4为本技术实施例提供的适用于客户端的静态页面访问装置的结构示意图;
50.图5为本技术实施例提供的适用于目标区块链节点的静态页面访问装置的结构示意图;
51.图6为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
52.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
53.为了解决现有技术中,无法保证访问安全的技术问题,本技术实施例提供了一种静态页面访问方法,在客户端访问区块链时,添加了验证的过程,保证了区块链的访问安全。
54.在详细介绍本技术实施例提供的一种静态页面访问方法之前,首先,结合图1对本技术实施例提供的一种静态页面访问系统进行介绍,如图1所示,该静态页面访问系统包括:
55.所述客户端101,用于向所述目标区块链节点102发送访问所述静态页面的访问请求;
56.所述目标区块链节点102,用于获取所述访问请求,并响应所述访问请求,向所述客户端101发送所述目标区块链节点的当前时间戳;
57.所述客户端101,用于获取所述当前时间戳;获取所述目标区块链节点102在所述
当前时间戳的预设时长之前交易的最后一个目标哈希值;基于所述当前时间戳和所述目标哈希值,生成验证脚本;向所述目标区块链节点102发送所述验证脚本;
58.所述目标区块链节点102,用于获取所述验证脚本;在对所述验证脚本验证通过后,则向所述客户端101发送所述静态页面。
59.其中,客户端101和目标区块节点102可以通过网络建立通信连接。
60.本技术实施例提供的静态页面访问系统中,获取当前时间戳的预设时长之前交易的最后一个目标哈希值,并基于所述当前时间戳和所述目标哈希值,生成验证脚本,验证脚本验证通过后,才允许访问静态页面。即生成的验证脚本是基于每次访问动态变化的,并不是固定不变的,在不增加区块链网络的负载的情况下,实现了针对客户端访问验证,能够保证访问安全。而且,通过获取当前时间戳的预设时长之前交易的最后一个目标哈希值,并基于所述当前时间戳和所述目标哈希值,生成验证脚本,能够防止攻击者提前计算出验证脚本,能够防止恶意访问或者分布式拒绝服务攻击(ddos攻击)。
61.下面结合图2对本技术实施例提供的一种静态页面访问方法做详细说明。如图2所示,本技术实施例提供了一种静态页面访问方法,适用于客户端,该静态页面访问方法具体包括:
62.步骤201,获取待访问的目标区块链节点的当前时间戳;
63.在客户端访问目标区块链节点时,客户端向目标区块链节点发起访问请求,该访问请求用于获取目标区块链节点的当前时间戳,用于后续生成验证脚本进行验证;具体的,向所述目标区块链节点发送访问所述静态页面的访问请求;接收所述目标区块链节点响应所述访问请求,反馈的所述当前时间戳。
64.步骤202,获取所述目标区块链节点在所述当前时间戳的预设时长之前交易的最后一个目标哈希值;
65.为了便于理解,这里举例说明,若客户端获取待访问的目标区块链节点的当前时间戳为t,则在当前时间戳t的基础上,往前预设时长,例如:f秒,得到的对应时间戳为k=t-f,在时间戳k之前交易的最后一个哈希值为h,则哈希值h为目标哈希值。
66.步骤203,基于所述当前时间戳和所述目标哈希值,生成验证脚本;
67.具体的,将所述当前时间戳的字符串形式和所述目标哈希值的字符串形式连接,生成目标字符串;基于所述目标字符串,计算所述验证脚本;
68.为了便于理解,这里举例说明,当前时间戳t的字符串形式为s
t
,目标哈希值h的字符串形式为sh,将当前时间戳t的字符串形式s
t
和目标哈希值h的字符串形式sh连接到一起,生成目标字符串s,即s=s
t
sh。想要计算得到的验证脚本应当是与目标字符串s相关的一个无法快速计算出来的结果。
69.本技术实施例提供了一种可行的方案,具体的,所述验证脚本满足如下条件:
70.在利用加密算法对所述目标字符串与所述验证脚本的和进行计算得到的字符串结果中,存在目标字符在所述字符串结果中出现的第一次数以及在所述目标字符串中出现的第二次数之和大于或等于预设次数;且所述验证脚本的长度小于或等于预设长度。
71.例如:存在某一个字符x在字符串结果r和目标字符串s中出现的次数之和不小于预设次数y,根据该字符串结果r和目标字符串s,计算字符串r=md5(s s'),求出一个长度不大于预设长度l字符串s',即所述验证脚本。其中,公式中的md5代表在所述目标字符串与
所述验证脚本的和的基础上进行md5信息摘要算法(md5 message-digest algorithm),其中,md5信息摘要算法是一种被广泛使用的密码散列函数。其中,计算难度随着y的增加而变大。对于预设长度l、预设次数y可以根据实际情况进行设定。
72.此外,还需要说明的是,还可以利用其他密码散列函数算法,例如:sha-2(secure hash algorithm 2,安全散列算法2),当然也可以是其他的密码散列函数算法。
73.步骤204,向所述目标区块链节点发送所述验证脚本;
74.当基于所述当前时间戳和所述目标哈希值,生成验证脚本后,将验证脚本发送给目标区块链节点进行验证。
75.步骤205,在确定所述目标区块链节点对所述验证脚本验证通过后,获取所述静态页面。
76.目标区块链节点预先与客户端沟通好计算验证脚本的方式,例如:步骤203中所提供的计算方式。当目标区块链节点收到验证脚本后,按照该计算方式进行验证,如果满足验证脚本的条件,则验证通过。在实际应用中,该验证脚本可以很快被验证,对于目标区块链节点的消耗不大。
77.如果确定所述目标区块链节点对所述验证脚本验证通过,则允许客户端访问静态页面。否则,不允许访问静态页面。
78.其中,在目标区块链节点预先与客户端沟通好计算验证脚本的方式时,可以通过cdn(内容分发网络)的方式进行分发,而不是把计算验证脚本的方式直接转发到区块链网络上,能够有效减少区块链网络本身的负载。
79.在本技术实施例中,获取当前时间戳的预设时长之前交易的最后一个目标哈希值,并基于所述当前时间戳和所述目标哈希值,生成验证脚本,验证脚本验证通过后,才允许访问静态页面。即生成的验证脚本是基于每次访问动态变化的,并不是固定不变的,不容易被破解。而且,生成验证脚本的过程在客户端中完成,不需要应用层,降低了区块链本身的负载,能够在不增加区块链网络的负载的情况下,实现针对客户端访问验证,能够保证访问安全。
80.而且,通过获取当前时间戳的预设时长之前交易的最后一个目标哈希值,并基于所述当前时间戳和所述目标哈希值,生成验证脚本,能够防止攻击者提前计算出验证脚本,能够防止恶意访问或者分布式拒绝服务攻击(ddos攻击)。
81.在一个具体实施例中,可以将客户端访问静态页面的访问记录以交易的形式记录在区块链节点上,既可以全量记录,也可以取样记录,例如:如果验证通过,则将静态页面的访问记录上链,可以增加区块链上的随机程度,降低变化太少的概率,为获取目标区块链节点,在当前时间戳的预设时长之前交易的最后一个目标哈希值提供了更多的可能,能够进一步降低攻击者提前计算出相关结论而发动攻击的概率。
82.在一个具体实施例中,静态页面中包括所述目标区块链节点的交易哈希和内容哈希;所述获取所述静态页面之后,还包括:
83.从所述静态页面中,获取所述交易哈希和所述内容哈希;将所述交易哈希和所述内容哈希存储在所述客户端的目标路径下。
84.在访问静态页面时,通过http(超文本传输协议)的访问请求url(uniform resource locator,统一资源定位器)里面的路径,从区块链网络上获得存储的静态页面的
内容,并在静态页面的页尾附上内容所在的区块链的交易哈希和内容哈希,以便访问者进行验核。
85.其中,内容存储主要由合约和交易进行完成,合约内部主要记录路径和内容的映射关系,具体反映为内容和交易哈希的关系。因为实际内容是存储在交易本身的。在存储内容时,需要在合约内记录信息,例如:路径,内容交易哈希,内容,版本号等,然后在交易哈希内部记录信息,例如:内容,内容哈希,版本号等,其中,版本号主要是为了记录同样路径的内容更新的次数,必要时可以记录差异,以便对照。其合约的更新必须由可靠的内容发布者进行管理。在同样路径发生内容变更时,则上述记录除了路径外,都需要进行更新。
86.在实际发生访问请求时,都需要先验证验证脚本是否正确,可以通过pow验证方式。然后再根据url从合约中拿到内容哈希。如果需要加速,则可以在目标区块链节点中设置访问url-内容哈希的缓存,因为最后内容的读取依旧需要读取内容哈希的内容,用户可以根据内容和页面中最后显示的哈希进行验核,而无需当心因为缓存而导致的内容失真或者伪造。
87.在一个具体实施例中,从所述静态页面中,获取所述交易哈希和所述内容哈希之后,还包括:基于所述内容哈希,对所述静态页面进行验核。
88.如果用户对访问的内容有疑问,则可以直接到区块链上本身进行验核,可以通过可信的反查合约,即反过来记录内容哈希到内容url的合约,可以由监管部门或者审核部门进行建立,在内容发布前,先由审核监管通过,再在内容合约进行发布更新,此合约不一定要和内容合约部署在同一条链上。
89.此外,用户也可以通过直接访问区块链的原始数据进行验核,主要验证交易是否来自发布者的公钥和内容本身。
90.在本技术实施例中,基于内容哈希能够对静态页面内容进行验核,验核方便,存储内容可追踪查询。
91.此外,如图3所示,本技术实施例还提供了一种静态页面访问方法,适用于目标区块链节点,该静态页面访问方法包括:
92.步骤301,获取客户端发送的访问所述静态页面的访问请求;
93.当用户通过客户端想要访问静态页面时,客户端向目标区块链节点发起访问请求,该访问请求用于获取目标区块链节点的当前时间戳,用于后续生成验证脚本进行验证。
94.步骤302,响应所述访问请求,向所述客户端发送所述目标区块链节点的当前时间戳;所述当前时间戳用于供所述客户端生成验证脚本;
95.其中,对于客户端生成验证脚本的方法,可以参见上述实施例步骤203所提供的计算方法。
96.步骤303,获取所述验证脚本,在对所述验证脚本验证通过后,向所述客户端发送所述静态页面。
97.如果确定所述目标区块链节点对所述验证脚本验证通过,则允许客户端访问静态页面。否则,不允许访问静态页面。
98.基于同一构思,本技术实施例中提供了一种静态页面访问装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图4所示,该装置适用于客户端,该装置主要包括:
99.第一获取模块401,用于获取待访问的目标区块链节点的当前时间戳;
100.第二获取模块402,用于获取所述目标区块链节点在所述当前时间戳的预设时长之前交易的最后一个目标哈希值;
101.生成模块403,用于基于所述当前时间戳和所述目标哈希值,生成验证脚本;
102.发送模块404,用于向所述目标区块链节点发送所述验证脚本;
103.第三获取模块405,在确定所述目标区块链节点对所述验证脚本验证通过后,获取所述静态页面。
104.在一个具体实施例中,生成模块403,用于将所述当前时间戳的字符串形式和所述目标哈希值的字符串形式连接,生成目标字符串;基于所述目标字符串,计算所述验证脚本;其中,所述验证脚本满足如下条件:在利用加密算法对所述目标字符串与所述验证脚本的和进行计算得到的字符串结果中,存在目标字符在所述字符串结果中出现的第一次数以及在所述目标字符串中出现的第二次数之和大于或等于预设次数;且所述验证脚本的长度小于或等于预设长度。
105.在一个具体实施例中,第一获取模块401,用于向所述目标区块链节点发送访问所述静态页面的访问请求;接收所述目标区块链节点响应所述访问请求,反馈的所述当前时间戳。
106.在一个具体实施例中,本技术实施例中提供的一种静态页面访问装置,还包括:存储模块,用于从所述静态页面中,获取所述交易哈希和所述内容哈希;将所述交易哈希和所述内容哈希存储在所述客户端的目标路径下。
107.在一个具体实施例中,本技术实施例中提供的一种静态页面访问装置,还包括:验核模块,用于从所述静态页面中,获取所述交易哈希和所述内容哈希之后,基于所述内容哈希,对所述静态页面进行验核。
108.此外,基于同一构思,本技术实施例中提供了一种静态页面访问装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图5所示,该装置适用于目标区块链节点,该装置主要包括:
109.第四获取模块501,用于获取客户端发送的访问所述静态页面的访问请求;
110.响应模块502,用于响应所述访问请求,向所述客户端发送所述目标区块链节点的当前时间戳;所述当前时间戳用于供所述客户端生成验证脚本;
111.验证模块503,用于获取所述验证脚本,在对所述验证脚本验证通过后,向所述客户端发送所述静态页面。
112.基于同一构思,本技术实施例中还提供了一种电子设备,如图6所示,该电子设备主要包括:处理器601、存储器602和通信总线603,其中,处理器601和存储器602通过通信总线603完成相互间的通信。其中,存储器602中存储有可被处理器601执行的程序,处理器601执行存储器602中存储的程序,实现如下步骤:
113.获取待访问的目标区块链节点的当前时间戳;
114.获取所述目标区块链节点在所述当前时间戳的预设时长之前交易的最后一个目标哈希值;
115.基于所述当前时间戳和所述目标哈希值,生成验证脚本;
116.向所述目标区块链节点发送所述验证脚本;
117.在确定所述目标区块链节点对所述验证脚本验证通过后,获取所述静态页面。
118.上述电子设备中提到的通信总线603可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线603可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
119.存储器602可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器601的存储装置。
120.上述的处理器601可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等,还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
121.在本技术的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的一种静态页面访问方法。
122.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如dvd)或者半导体介质(例如固态硬盘)等。
123.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
124.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一
致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献