本申请涉及网络技术,特别涉及一种网页地址生成方法和装置。
背景技术:
当要查看一个网页时,通常是根据该网页的网页地址来访问,比如,根据网页的统一资源定位符(uniformresourcelocator,url)访问该网页。有些业务对于业务相关网页的地址生成方式较为简单,比如,在一个展示产品的业务中,如果用户要查看产品相关的信息,需要通过产品信息网页的网页地址访问,而业务中心在生成产品信息网页的网页地址时,可以简单的将产品标识与预定的其他地址信息拼接在一起,即形成网页地址。这种地址生成方式,使得攻击者可以非法获取到未公开产品的网页地址,比如,对于不希望用户看到的未公开产品,尽管业务中心已经预先生成了该产品信息网页的网页地址,但并不会在网上公开该地址,而攻击者可以根据上述简单的地址拼接生成规则,获取到网页地址进行访问,从而造成产品信息的泄露。
技术实现要素:
有鉴于此,本申请提供一种网页地址生成方法和装置,以提高网页访问的安全性。
具体地,本申请是通过如下技术方案实现的:
第一方面,提供一种网页地址生成方法,所述方法用于生成目标网页的网页地址,所述目标网页用于展示目标对象的对象信息;所述方法包括:
根据所述目标网页的唯一标识信息,按照预设的参数生成规则生成校验 参数,所述唯一标识信息用于将所述目标网页与其他网页区分;
将所述校验参数添加在所述目标网页的网页地址中。
第二方面,提供一种网页地址生成装置,所述装置用于生成目标网页的网页地址,所述目标网页用于展示目标对象的对象信息;所述装置包括:
校验参数生成模块,用于根据所述目标网页的唯一标识信息,按照预设的参数生成规则生成校验参数,所述唯一标识信息用于将所述目标网页与其他网页区分;
网页地址生成模块,用于将所述校验参数添加在目标网页的网页地址中。
本申请提供的网页地址生成方法和装置,通过根据目标网页的唯一标识信息生成校验参数,并将该校验参数添加在目标网页的网页地址中,使得当不知道校验参数的参数生成规则时就无法获得网页地址,从而提高了网页访问的安全性。
附图说明
图1是本申请一示例性实施例示出的一种网页地址生成方法的流程图;
图2是本申请一示例性实施例示出的另一种网页地址生成方法的流程图;
图3是本申请一示例性实施例示出的产品合同页面查看示意图;
图4是本申请一示例性实施例示出的一种网页地址生成装置的结构图;
图5是本申请一示例性实施例示出的另一种网页地址生成装置的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请实施例提供了一种网页地址生成方法,该方法可以应用于生成一 个页面的地址。例如,可以将要生成网页地址的页面称为“目标网页”,并且该目标网页是用于展示目标对象的对象信息;举例如下:用户在购买网上展示的一个产品时,可以先查看该产品的产品购买合同页面,该产品购买合同页面中可以包括产品相关的信息,比如,产品利率、产品库存等,在这个例子中,产品购买合同页面对应的“产品”即为“目标对象”,而页面中的产品库存等信息即为“对象信息”。
图1描述了本申请实施例的网页地址生成方法,由图1可以看到,本申请的方法,会在按照常规方式生成的网页地址中加入“校验参数”,如步骤102。
例如,上述例子中的产品购买合同页面,该合同页面的网页地址即该页面的url链接,并且,假设按照常规方式生成的合同页面的url,可以是用简单拼接方式生成。例如,该url可以包括产品标识“productid=2015122xxxxxxxx”(该产品标识即目标对象的对象标识),还包括除productid以外的其他的预设地址信息(比如,合同类型等),将上述信息拼接在一起而形成。
对比来看,使用本申请的方法后,本申请方法生成的合同页面的url在原有的url的基础上,可以增加“校验参数”。该校验参数例如可以用“sign”参数来表示,比如,“sign=569699xxxxxxx”,该sign参数即为在url中添加的“校验参数”。
在上面的例子中,校验参数的生成规则可以是如步骤101所述:根据目标网页的唯一标识信息,按照预设的参数生成规则生成校验参数,所述唯一标识信息用于将目标网页与其他网页区分。
比如,在上述的产品购买合同页面的url链接地址生成的例子中,产品标识productid即相当于产品购买合同页面(即目标网页)的唯一标识信息,因为不同产品对应的产品购买合同页面是不同的,只要提供产品标识,就可以得到一个对应该产品标识的合同页面,所以该产品标识能够起到将目标网页与其他网页区分的作用,比如,换一个产品标识productid,就会得到另一 个产品购买合同页面。
当然,这是以产品购买合同页面为例,在其他的应用场景中,目标网页可以是其他内容的页面,目标网页对应的目标对象也不一定是产品而是其他对象;同样的,在其他场景中,目标网页的唯一标识信息也可以不是产品标识而是其他信息,并且,唯一标识信息也不一定如合同页面的url链接那样将产品标识包含在url中。即,本申请的方法不局限于合同页面地址的生成。
仍继续以产品购买合同页面的url生成为例,校验参数“sign=569699xxxxxxx”的生成,可以是按照预设的参数生成规则。该规则可以有多种方式,比如,可以根据productid,按照一定的计算规则生成一个包含该productid的字符串;或者,按照一定规则生成一个对应该productid的随机数序列等。如下列举一种方式:
可以使用预设的密钥,对唯一标识信息进行加密,得到所述校验参数。例如,可以预先定义一个密钥key,然后在产品标识productid上加上该密钥key,用md5进行加密得到上述的sign参数。这种加密方式得到的sign参数不能反向解密出对应的产品标识。此外,也可以用其他的加密方式。生成的校验参数可以拼接在网页地址的末尾,例如在上述的合同页面的url的例子中,“sign=569699xxxxxxx”即在url的末尾,当然也可以将校验参数设置在url中的其他位置,比如,在产品标识之前。
上述的网页地址生成方法,通过在网页地址中增加了一个校验参数,使得攻击者无法获知预设的参数生成规则,即使攻击者知道了目标网页的唯一标识信息,也不能生成校验参数,从而就无法得到目标网页的网页地址,将使得对网页地址的访问更加安全。
例如,在合同页面的url生成的例子中,如果按照简单的拼接方式生成url,那么只要攻击者知道了产品标识productid,并通过访问一个已知的产品合同页面得到了productid之外的其他信息,就可以不断的尝试猜测其他正确的未公开产品的productid,并使用拼接法得到未公开产品的合同页面url进行盗取信息。而如果按照本申请的方法,即使攻击者获得了猜测正确 的productid以及其他拼接信息,但是其仍然无法得知如何根据productid生成sign参数,不知道sign参数的生成规则,不知道密钥和加密算法,因此,攻击者不能获得合同页面的url,从而保护了本不想公开的网页信息。
图2示例了一种利用本申请的网页地址生成方法生成的地址进行访问的流程,该流程仍以产品的合同页面url的访问为例进行说明。如图2所示,合同页面url的生成可以在“合同中心”执行,合同中心可以为每一个产品生成对应该产品的产品购买合同页面的url链接地址。
请参考图3,例如,用户可以在产品购买页面中产看该产品的相关信息,并且还可以在该页面中点击“产品合同”,来查看合同页面中的内容,比如,产品利率、产品库存等。当用户点击产品合同时,即相当于在通过合同中心生成的对应该产品的合同页面url来访问,向合同中心发送了查看该合同页面url对应的合同页面的访问请求。即在步骤201中,客户端(用户浏览的产品购买页面)向合同中心发送了访问合同页面请求。例如,该访问对应的合同页面url可以是上面例子中提到的包含productid和sign参数的地址。
在步骤202中,合同中心在接收到页面访问请求时,可以先对该url地址进行校验,校验正确才允许访问。
例如,产品的状态可以包括未公开和已公开,已公开的产品即如图3所示,用户可以在网页上看到并且可以购买,也可以查看产品合同;而未公开的产品,用户不可以在网页上看到,当然也不会看到图3示例的产品合同的链接。但是,不论是未公开或已公开的产品,合同中心都可以预先生成对应该产品的产品购买合同页面的地址url,即使是未公开的产品,其合同页面的url也已经生成(这就导致可能出现攻击者通过url非法查看未公开产品的合同页面),只是当如图3所示公开在网上时,用户才可以点击合同链接,通过合同中心预先生成的合同页面url访问查看合同页面。
以通过密钥加密生成校验参数为例,合同中心在预先生成合同页面的url时,可以保存校验参数生成所使用的密钥key以及使用的加密算法。在接收到用户点击“产品合同”发送的合同页面访问请求时,可以在本步骤202 中对合同页面进行校验,比如,获取合同页面url中的产品标识productid,并使用存储的密钥和加密算法,计算得到sign参数即校验参数。然后将该校验参数与访问请求对应的合同页面url中的sign参数比较,判断两者是否相同。
若不相同,表明该合同页面地址不正确,在步骤203中向客户端反馈拒绝访问合同页面。这种情况可能是,比如,攻击者猜测的校验参数,结果由于攻击者不知道密钥和加密算法等参数生成规则,导致生成的sign参数不正确,合同中心通过校验sign参数可以识别出来,并拒绝访问。
若相同,则表明该合同页面地址正确,该地址是合同中心自己生成的url地址。此时,合同中心可以允许对合同页面的访问,并通过执行步骤204至208,向客户端展示用户要访问的产品合同的合同页面。
简单说明下步骤204至208:尽管合同中心可以预先生成产品合同的合同页面url,但是合同页面的信息尚未补充完整,产品可以使用一个对应该产品的合同模板来生成。合同中心可以向业务系统获取该产品的合同中需要显示的信息,比如,产品库存、产品利率等,合同中心可以向业务中心提供产品标识,使得业务系统可以根据产品标识将对应的合同信息反馈给合同中心。然后,合同中心可以获取合同模板,并将合同信息补充在模板中,将信息补全后的产品合同展示给用户。
上述图2所示的流程可以看到,合同中心在接收到对目标网页的访问请求时,还可以对网页地址进行校验,即根据生成网页地址时的参数生成规则计算校验参数,判断校验参数是否相同。
这种方式可以作为对网页访问的一种安全控制,比如,在合同页面的查看例子中,如果要查看某个产品的合同页面,需要通过合同中心的url地址校验后,才可以看到合同页面的信息。而传统方式中,对合同页面的查看依赖于业务逻辑和产品状态,如果业务逻辑规定了未公开的产品不允许查看产品合同,那么,未公开的产品是不会在网页上显示的,用户无法看到,也就不能点击产品合同链接,但是,如果业务逻辑变更,相应的产品查看权限也 要变更,而且一旦产品合同链接显示在页面,用户点击该链接即可访问产品合同,不再有后续的安全控制,这种方式是存在安全风险的。而本申请的方法中,通过改变了url本身的格式,添加了校验参数,可以将安全控制和业务逻辑隔离,根据校验参数做安全校验即可,与业务逻辑没有关系,更加简单,也更加安全。
图4提供了一种网页地址生成装置,该装置例如可以应用于合同中心,该装置用于生成目标网页的网页地址,所述目标网页用于展示目标对象的对象信息。如图4所示,该装置可以包括:校验参数生成模块41和网页地址生成模块42。
校验参数生成模块41,用于根据所述目标网页的唯一标识信息,按照预设的参数生成规则生成校验参数,所述唯一标识信息用于将所述目标网页与其他网页区分;
网页地址生成模块42,用于将校验参数添加在目标网页的网页地址中。
在一个例子中,所述唯一标识信息,包括:所述目标对象的对象标识;所述对象标识也位于所述网页地址中。
在一个例子中,校验参数生成模块41,用于使用预设的密钥,对所述唯一标识信息进行加密,得到所述校验参数。
在一个例子中,网页地址生成模块42,用于将所述校验参数拼接在网页地址的末尾。
如图5所示,该装置还可以包括:访问请求接收模块43和访问校验控制模块44。
访问请求接收模块43,用于在接收到对所述网页地址的访问请求时,获取所述网页地址对应的目标网页的唯一标识信息;
所述校验参数生成模块41,用于根据所述访问请求接收模块得到的唯一标识信息,按照所述预设的参数生成规则生成校验参数;
所述访问校验控制模块44,用于判断所述校验参数与所述网页地址中包含的校验参数是否相同,若相同则允许对网页地址的访问,否则,拒绝访问。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。