一种跨窗口提交数据的方法及系统的制作方法
【技术领域】
[0001] 本发明设及计算机网络领域,尤其设及一种跨窗口提交数据的方法及系统。
【背景技术】
[0002] 跨窗口指的是某项服务可W应用于多个窗口,用户访问页面时需要打开新的窗口 进程并在该新的窗口继续操作,由于跨窗口,用户的sessionid不同了,无法获取原有数据, 运样导致用户无法继续操作。目前有一种直接在新窗口 get请求并带上全部参数,运样虽然 能实现数据传输,但不安全,容易受到跨站攻击(Cross Site Script Execution),从而导 致了用户数据的安全性低的技术问题。
【发明内容】
[0003] 本发明实施例提供了一种跨窗口提交数据的方法及系统,解决了目前直接在新窗 口 get请求并带上全部参数,虽然能实现数据传输,但导致了不安全,容易受到跨站攻击,用 户数据的安全性低的技术问题。
[0004] 本发明实施例中提供的一种跨窗口提交数据的方法,包括:
[000引通过旧窗口将提交数据传输至服务器进行缓存,并获取与所述提交数据对应的唯 一字符串;
[0006] 根据所述唯一字符串进行新窗口的HTML表单设置,并提交所述HTML表单通过携带 有所述唯一字符串的访问地址进入所述新窗口;
[0007] 当打开所述新窗口之后,将所述新窗口的所述唯一字符串发送至所述服务器进行 验证,若成功,则通过所述服务器获取与所述唯一字符串对应的所述提交数据。
[0008] 可选地,通过旧窗口将提交数据传输至服务器进行缓存,并获取与所述提交数据 对应的唯一字符串具体包括:
[0009] 在所述旧窗口通过ajax方式将所述提交数据Wpost方式上报至所述服务器;
[0010] 通过所述服务器将所述提交数据缓存至redis中,并获取与所述提交数据对应的 token字符串。
[0011] 可选地,通过所述服务器将所述提交数据缓存至redis中,并获取与所述提交数据 对应的token字符串具体包括:
[0012] 通过所述服务器根据UUID方式生成唯一的前缀字符串;
[0013] 通过所述服务器按照本地IP+密钥的方式的字符串用签名方法计算签名;
[0014] 通过所述服务器将所述提交数据Wk巧-value数据的形式缓存至redis,其中,k巧 为所述前缀字符串+所述本地IP,value为所述提交数据对应的json字符串;
[0015] 通过所述服务器获取形式为前缀字符串-签名的所述token字符串。
[0016] 可选地,根据所述唯一字符串进行新窗口的HTML表单设置,并提交所述HTML表单 通过携带有所述唯一字符串的访问地址进入所述新窗口具体包括:
[0017] 根据所述token字符串进行新窗口的HTML表单设置,并提交所述HTML表单通过携 带有所述token字符串的访问地址进入所述新窗口。
[0018] 可选地,当打开所述新窗口之后,将所述新窗口的所述唯一字符串发送至所述服 务器进行验证,若成功,则通过所述服务器获取与所述唯一字符串对应的所述提交数据具 体包括:
[0019] 当打开所述新窗口之后,将所述新窗口的所述token字符串发送至所述服务器;
[0020] 通过所述服务器按照所述本地IP+密钥的方式的字符串计算实时签名,与所述 token字符串的所述签名进行对比,若所述实时签名与所述签名一致,则通过所述服务器从 redis采用key获取与所述json字符串对应的所述提交数据;
[0021 ]通过所述服务器将redis的所述k巧-value数据进行删除。
[0022] 本发明实施例中提供的一种跨窗口提交数据的系统,包括:客户端和服务器;
[0023] 所述客户端包括:
[0024] 获取单元,用于通过旧窗口将提交数据传输至服务器进行缓存,并获取与所述提 交数据对应的唯一字符串;
[002引设置单元,用于根据所述唯一字符串进行新窗口的HTML表单设置,并提交所述 HTML表单通过携带有所述唯一字符串的访问地址进入所述新窗口;
[0026] 验证单元,用于当打开所述新窗口之后,将所述新窗口的所述唯一字符串发送至 所述服务器进行验证,若成功,则通过所述服务器获取与所述唯一字符串对应的所述提交 数据。
[0027] 可选地,所述获取单元包括:
[0028] 上报子单元,用于在所述旧窗口通过ajax方式将所述提交数据Wpost方式上报至 所述服务器;
[0029] 第一获取子单元,用于通过所述服务器将所述提交数据缓存至redis中,并获取与 所述提交数据对应的token字符串。
[0030] 可选地,所述服务器包括:
[0031] 生成单元,用于根据UUID方式生成唯一的前缀字符串;
[0032] 签名计算单元,用于按照本地IP+密钥的方式的字符串用签名方法计算签名;
[0033]缓存单元,用于将所述提交数据Wk巧-value数据的形式缓存至redis,其中,k巧 为所述前缀字符串+所述本地IP,value为所述提交数据对应的json字符串;
[0034]发送单元,用于将形式为前缀字符串-签名的所述token字符串发送给所述客户 玉山 乂而。
[003引可选地,设置单元,具体用于根据所述token字符串进行新窗口的HTML表单设置, 并提交所述HTML表单通过携带有所述token字符串的访问地址进入所述新窗口。
[0036] 可选地,验证单元具体包括:
[0037] 发送子单元,用于当打开所述新窗口之后,将所述新窗口的所述token字符串发送 至所述服务器;
[0038] 第二获取子单元,用于当通过所述服务器用按照所述本地IP+密钥的方式的字符 串计算实时签名,与所述token字符串的所述签名进行对比之后,若所述实时签名与所述签 名一致,则获取到通过所述服务器从redis采用k巧获取与所述json字符串对应的所述提交 数据。
[0039] 可选地,所述服务器还包括:
[0040] 删除单元,用于当所述客户端获取所述实时签名与所述签名对比一致之后,将 redis的所述k巧-value数据进行删除。
[0041] 从W上技术方案可W看出,本发明实施例具有W下优点:
[0042] 本发明实施例提供了一种跨窗口提交数据的方法及系统,其中,跨窗口提交数据 的方法包括:通过旧窗口将提交数据传输至服务器进行缓存,并获取与提交数据对应的唯 一字符串;根据唯一字符串进行新窗口的肌ML表单设置,并提交HTML表单通过携带有唯一 字符串的访问地址进入新窗口;当打开新窗口之后,将新窗口的唯一字符串发送至服务器 进行验证,若成功,则通过服务器获取与唯一字符串对应的提交数据。本实施例中,通过先 将在旧窗口提交的提交数据进行缓存,当打开新窗口之后,将新窗口的唯一字符串发送至 服务器进行验证,成功之后,再将提交数据发送至新窗口,实现了高安全性的跨窗口提交数 据,解决了目前直接在新窗口 get请求并带上全部参数,虽然能实现数据传输,但导致了不 安全,容易受到跨站攻击,用户数据的安全性低的技术问题。
【附图说明】
[0043] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 W根据运些附图获得其它的附图。
[0044] 图1为本发明实施例提供的一种跨窗口提交数据的方法的一个实施例的流程示意 图;
[0045] 图2为本发明实施例提供的一种跨窗口提交数据的方法的另一个实施例的流程示 意图;
[0046] 图3为本发明实施例提供的一种
跨窗口提交数据的系统的一个实施例的流程示意 图;
[0047] 图4为本发明实施例提供的一种跨窗口提交数据的系统的另一个实施例的流程示 意图;
[0048] 图5(a)至图5(c)为图2实施例的一个应用例场景示意图。
【具体实施方式】
[0049] 本发明实施例提供了一种跨窗口提交数据的方法及系统,解决了目前直接在新窗 口 get请求并带上全部参数,虽然能实现数据传输,但导致了不安全,容易受到跨站攻击,用 户数据的安全性低的技术问题。
[0050] Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日 志型、K巧-Value数据库,并提供多种语言的API。
[0051] AJAX即 "Asynchronous JavascriptAnd XML"(异步JavaScript和XML),是指一种 创建交互式网页应用的网页开发技术。
[0052] 为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明 实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述 的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域 普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护 的范围。
[0053] 在有些游戏中,需要进行充值购买物品等等,通常是在旧的访问界面发送支付请 求,旧访问界面提交支付数据给服务器,再通过服务器接入新的窗口完成整个提交并支付。
[0054] 请参阅图1,本发明实施例提供的一种跨窗口提交数据的方法的一个实施例包括:
[0055] 101、通过旧窗口将提交数据传输至服务器进行缓存,并获取与提交数据对应的唯 一字符串;
[0056] 本实施例中,当需要跨窗口提交数据时,首先通过旧窗口将提交数据传输至服务 器进行缓存,并获取与提交数据对应的唯一字符串。
[0057] 102、根据唯一字符串进行新窗口的HTML表单设置,并提交HTML表单通过携带有唯 一字符串的访问地址进入新窗口;
[0058] 当通过旧窗口将提交数据传输至服务器进行缓存,并获取与提交数据对应的唯一 字符串之后,需要根据唯一字符串进行新窗口的HTML表单设置,并提交肌ML表单通过携带 有唯一字符串的访问地址进入新窗口。
[0059] 103、当打开新窗口之后,将新窗口的唯一字符串发送至服务器进行验证,若成功, 则执行步骤104;
[0060] 当根据唯一字符串进行新窗口的HTML表单设置,并提交HTML表单通过携带有唯 一字符串的访问地址进入新窗口之后,需要将新窗口的唯一字符串发送至服务器进行验 证,若成功,则执行步骤104。
[0061 ] 104、通过服务器获取与唯一字符串对应的提交数据。
[0062] 当将新窗口的唯一字符串发送至服务器进行验证成功之后,需要通过服务器获取 与唯一字符串对应的提交数据。
[0063] 本实施例中,通过先将在旧窗口提交的提交数据进行缓存,当打开新窗口之后,将 新窗口的唯一字符串发送至服务器进行验证,成功之后,再将提交数据发送至新窗口,实现 了高安全性的跨窗口提交数据,解决了目前直接在新窗口 get请求并带上全部参数,虽然能 实现数据传输,但导致了不安全,容易受到跨站攻击,用户数据的安全性低的技术问题。
[0064] 上面是对跨窗口提交数据的方法的过程进行详细的描述,下面将对通过旧窗口将 提交数据传输至服务器进行缓存,并获取与提交数据对应的唯一字符串的过程进行详细的 描述,请参阅图2,本发明实施例提供的一种跨窗口提交数据的方法的另一个实施例包括: [00 6引201、在旧窗口通过ajax方式将提交数据Wpost方式上报至服务器;
[0066] 本实施例中,当需要跨窗口提交数据时,首先在旧窗口通过ajax方式将提交数据 Wpost方式上报至服务器。
[0067] 202、在旧窗口通过ajax方式将提交数据Wpost方式上报至服务器;
[0068] 当在旧窗口通过ajax方式将提交数据Wpost方式上报至服务器之后,需要在旧窗 口通过ajax方式将提交数据Wpost方式上报至服务器。
[0069] 203、通过服务器根据UUID方式生成唯一的前缀字符串;
[0070] 当在旧窗口通过ajax方式将提交数据Wpost方式上报至服务器之后,需要通过服 务器根据UUID方式生成唯一的前缀字符串,例如用UUID方法生成唯一的字符串aaaa。
[0071] 204、通过服务器按照本地IP+密钥的方式的字符串用签名方法计算签名;
[0072] 当通过服务器根据UUID方式生成唯一的前缀字符串之后,需要通过服务器按照本 地IP+密钥的方式的字符串用签名方法计算签名,例如对客户端IP+密钥的字符串用签名方 法计算签名化。
[0073] 205、通过服务器将提交数据Wk巧-value数据的形式缓存至redis;
[0074] 当通过服务器按照本地IP+密钥的方式的字符串用签名方法计算签名之后,需要 通过服务器将提交数据Wkey-value数据的形式缓存至redis,其中,key为前缀字符串+本 地IP,value为提交数据对应的json字符串,例如Wkey-value形式存数据入redis,key为 aaaa+用户ip,value为上报数据的json字符串,并设置一个预置过期时间,如10秒等,此处 具体不做限定。
[0075] 206、通过服务器获取形式为前缀字符串-签名的token字符串;
[0076] 当通过服务器将提交数据Wkey-value数据的形式缓存至redis之后,需要通过服 务器获取形式为前缀字符串-签名的token字符串,例如获取到服务器返回的token字符串 为曰曰曰曰-bbo
[OOW] 207、根据token字符串进行新窗口的HTML表单设置,并提交HTML表单通过携带有 token字符串的访问地址进入新窗口;
[0078] 当通过服务器获取形式为前缀字符串-签名的token字符串之后,需要根据token 字符串进行新窗口的HTML表单设置,并提交HTML表单通过携带有token字符串的访问地址 进入新窗口,前述的TML表单可W是在页面的HTML元素设置为:
[0079] <form method="get"id="form"action="http://aa.com/xx.do"target= blank"〉
[0080] <i吨utv曰lue ="曰曰曰曰-bb"type = "hidden"id = "token"name = "token"/〉
[0081] 〈/form〉
[0082] 208、将新窗口的token字符串发送至服务器;
[0083] 当打开新窗口之后,将新窗口的token字符串发送至服务器,
[0084] 209、通过服务器按照本地IP+密钥的方式的字符串计算实时签名,与token字符串 的签名进行对比,若实时签名与签名一致,则执行步骤210;
[0085] 当根据唯一字符串进行新窗口的HTML表单设置,并提交HTML表单通过携带有唯一 字符串的访问地址进入新窗口之后,需要通过服务器按照本地IP+密钥的方式的字符串计 算实时签名,与token字符串的签名进行对比,若实时签名与签名一致,则执行步骤210。
[0086] 210、通过服务器从redis采用k巧获取与json字符串对应的提交数据;
[0087] 当通过服务器按照本地IP+密钥的方式的字符串计算实时签名,与token字符串的 签名进行对比,若实时签名与签名一致之后,需要通过服务器从redis采用k巧获取与json 字符串对应的提交数据。
[0088] 211、通过服务器将redis的k巧-va
lue数据进行删除。
[0089] 当通过服务器从redis采用k巧获取与json字符串对应的提交数据之后,需要通过 服务器将redis的k巧-value数据进行删除。
[0090] 本实施例中,通过先将在旧窗口提交的提交数据进行缓存,当打开新窗口之后,将 新窗口的唯一字符串发送至服务器进行验证,成功之后,再将提交数据发送至新窗口,实现 了高安全性的跨窗口提交数据,解决了目前直接在新窗口 get请求并带上全部参数,虽然能 实现数据传输,但导致了不安全,容易受到跨站攻击,用户数据的安全性低的技术问题,W 及获取到提交数据后,通过服务器将redis的key-value数据进行删除,使得token数据为一 次性使用,大大地保障了用户数据的安全性。
[0091] 上面是通过旧窗口将提交数据传输至服务器进行缓存,并获取与提交数据对应的 唯一字符串的过程进行详细的描述,为了便于理解,下面将W-具体应用场景对图2所示的 实施例进行详细的描述,应用例包括:
[0092] a.用户点击"立即支付"按钮,见图5(a);
[0093] b.页面会执行下面js,并调起等待页面,见图5(b);
[0094] 页面有个html元素:
[009引〈form method = "get"id = "fo;rm"action ="新窗 口打开的地址"target = "_ blank"〉
[0096] <input type = "hidden"id = "token"name = "token"/〉
[0097] 〈/form〉
[0098] 用户点击页面确认按钮提交数据时,页面会执行W下js方法先把数据传输到服务 器,然后获取提交数据对应的token字符串。
[0099]
[0100]
[0101] C.服务器缓存数据;
[0102] 数据上传上来,用W下方法缓存数据并生成token:
[0103] (1)用UUID方法生成唯一的字符串aaaa;
[0104] (2)对用户ip+密钥的字符串用签名方法计算签名化;
[0105] (3) Wkey-value形式存数据入redis,key为aaaa+用户ip,value为上报数据的 json字符串,并设置10秒过期。
[0106] (4)返回 token 为 aaaa-bb。
[01 07] d.执行$ ("#f orm"). submi t ();运个方法后,就会在新浏览器的窗口打开ht化:// 曰曰.com/xx.do? token =曰曰曰曰-bb;
[010引 e .服务器获取到token: aaaa-bb,用当前用户ip+密钥算签名跟t)b比较,相等则从 redis用key :aaaa+用户ip,获取对应订单信息,并删除redis的运个数据,确保token只用一 次。
[0109] f.下单后,页面再重定向到网银,用户付款,见图5(c)。
[0110] 请参阅图3,本发明实施例中提供的一种跨窗口提交数据的系统的一个实施例包 括:
[0111] 客户端31和服务器32;
[011引客户端31包括:
[0113] 获取单元311,用于通过旧窗口将提交数据传输至服务器进行缓存,并获取与提交 数据对应的唯一字符串;
[0114] 设置单元312,用于根据唯一字符串进行新窗口的HTML表单设置,并提交HTML表单 通过携带有唯一字符串的访问地址进入新窗口;
[0115] 验证单元313,用于当打开新窗口之后,将新窗口的唯一字符串发送至服务器进行 验证,若成功,则通过服务器获取与唯一字符串对应的提交数据。
[0116] 本实施例中,通过获取单元311先将在旧窗口提交的提交数据进行缓存,当打开新 窗口之后,验证单元313将新窗口的唯一字符串发送至服务器进行验证,成功之后,再将提 交数据发送至新窗口,实现了高安全性的跨窗口提交数据,解决了目前直接在新窗口 get请 求并带上全部参数,虽然能实现数据传输,但导致了不安全,容易受到跨站攻击,用户数据 的安全性低的技术问题。
[0117] 上面是对跨窗口提交数据的系统的各单元进行详细的描述,下面将对子单元及服 务器的组成进行详细的描述,请参阅图4,本发明实施例中提供的一种跨窗口提交数据的系 统的另一个实施例包括:
[011引客户端41和服务器42;
[0119] 客户端41包括:
[0120] 获取单元411,用于通过旧窗口将提交数据传输至服务器进行缓存,并获取与提交 数据对应的唯一字符串;
[0121] 获取单元411包括:
[0122] 上报子单元4111,用于在旧窗口通过ajax方式将提交数据Wpost方式上报至服务 器;
[0123] 第一获取子单元4112,用于通过服务器将提交数据缓存至redis中,并获取与提交 数据对应的token字符串。
[0124] 设置单元412,用于根据唯一字符串进行新窗口的HTML表单设置,并提交HTML表单 通过携带有唯一字符串的访问地址进入新窗口,设置单元412,具体用于根据token字符串 进行新窗口的HTML表单设置,并提交HTML表单通过携带有token字符串的访问地址进入新 窗口。
[0125] 验证单元413,用于当打开新窗口之后,将新窗口的唯一字符串发送至服务器进行 验证,若成功,则通过服务器获取与唯一字符串对应的提交数据。
[0126] 验证单元413具体包括:
[0127] 发送子单元4131,用于当打开新窗口之后,将新窗口的token字符串发送至服务 器;
[0128] 第二获取子单元4132,用于当通过服务器用按照本地IP+密钥的方式的字符串计 算实时签名,与token字符串的签名进行对比之后,若实时签名与签名一致,则获取到通过 服务器从redis采用k巧获取与json字符串对应的提交数据。
[0129] 服务器42包括:
[0130] 生成单元421,用于根据UUID方式生成唯一的前缀字符串;
[0131] 签名计算单元422,用于按照本地IP+密钥的方式的字符串用签名方法计算签名;
[0132] 缓存单元423,用于将提交数据Wk巧-value数据的形式缓存至redis,其中,k巧为 前缀字符串+本地IP,value为提交数据对应的json字符串;
[0133] 发送单元424,用于将形式为前缀字符串-签名的token字符串发送给客户端。
[0134] 删除单元425,用于当客户端获取实时签名与签名对比一致之后,将redis的ke^ value数据进行删除。
[0135] 本实施例中,通过获取单元411先将在旧窗口提交的提交数据进行缓存,当打开新 窗口之后,验证单元413将新窗口的唯一字符串发送至服务器进行验证,成功之后,再将提 交数据发送至新窗口,实现了高安全性的跨窗口提交数据,解决了目前直接在新窗口 get请 求并带上全部参数,虽然能实现数据传输,但导致了不安全,容易受到跨站攻击,用户数据 的安全性低的技术问题,W及获取到提交数据后,删除单元425通过服务器将redis的key-value 数据进行删除 ,使得 token 数据为一次性使用,大大地保障了用户数据的安全性。
[0136] 所属领域的技术人员可W清楚地了解到,为描述的方便和简洁上述描述的系统, 装置和单元的具体工作过程,可W参考前述方法实施例中的对应过程,在此不再寶述。
[0137] 在本申请所提供的几个实施例中,应该理解到,所掲露的系统,装置和方法,可W 通过其它的方式实现。例如,W上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可W有另外的划分方式,例如多个单元或组件 可W结合或者可W集成到另一个系
统,或一些特征可W忽略,或不执行。另一点,所显示或 讨论的相互之间的禪合或直接禪合或通信连接可W是通过一些接口,装置或单元的间接禪 合或通信连接,可W是电性,机械或其它的形式。
[0138] 所述作为分离部件说明的单元可W是或者也可W不是物理上分开的,作为单元显 示的部件可W是或者也可W不是物理单元,即可W位于一个地方,或者也可W分布到多个 网络单元上。可W根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0139] 另外,在本发明各个实施例中的各功能单元可W集成在一个处理单元中,也可W 是各个单元单独物理存在,也可W两个或两个W上单元集成在一个单元中。上述集成的单 元既可W采用硬件的形式实现,也可W采用软件功能单元的形式实现。
[0140] 所述集成的单元如果W软件功能单元的形式实现并作为独立的产品销售或使用 时,可W存储在一个计算机可读取存储介质中。基于运样的理解,本发明的技术方案本质上 或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可软件产品的形式 体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用W使得一台计算机 设备(可W是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全 部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memo巧)、随机存取存储器(RAM,Random Access Memcxry)、磁碟或者光盘等各种可W存储程 序代码的介质。
[0141] W上所述,W上实施例仅用W说明本发明的技术方案,而非对其限制;尽管参照前 述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可W对前 述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而运些 修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1. 一种跨窗口提交数据的方法,其特征在于,包括: 通过旧窗口将提交数据传输至服务器进行缓存,并获取与所述提交数据对应的唯一字 符串; 根据所述唯一字符串进行新窗口的HTML表单设置,并提交所述HTML表单通过携带有所 述唯一字符串的访问地址进入所述新窗口; 当打开所述新窗口之后,将所述新窗口的所述唯一字符串发送至所述服务器进行验 证,若成功,则通过所述服务器获取与所述唯一字符串对应的所述提交数据。2. 根据权利要求1所述的跨窗口提交数据的方法,其特征在于,通过旧窗口将提交数据 传输至服务器进行缓存,并获取与所述提交数据对应的唯一字符串具体包括: 在所述旧窗口通过ajax方式将所述提交数据以post方式上报至所述服务器; 通过所述服务器将所述提交数据缓存至redis中,并获取与所述提交数据对应的token字符串。3. 根据权利要求2所述的跨窗口提交数据的方法,其特征在于,通过所述服务器将所述 提交数据缓存至redis中,并获取与所述提交数据对应的token字符串具体包括: 通过所述服务器根据UUID方式生成唯一的前缀字符串; 通过所述服务器按照本地IP+密钥的方式的字符串用签名方法计算签名; 通过所述服务器将所述提交数据以key-value数据的形式缓存至redis,其中,key为所 述前缀字符串+所述本地IP,value为所述提交数据对应的json字符串; 通过所述服务器获取形式为前缀字符串-签名的所述token字符串。4. 根据权利要求3所述的跨窗口提交数据的方法,其特征在于,根据所述唯一字符串进 行新窗口的HTML表单设置,并提交所述HTML表单通过携带有所述唯一字符串的访问地址进 入所述新窗口具体包括: 根据所述token字符串进行新窗口的HTML表单设置,并提交所述HTML表单通过携带有 所述token字符串的访问地址进入所述新窗口。5. 根据权利要求4所述的跨窗口提交数据的方法,其特征在于,当打开所述新窗口之 后,将所述新窗口的所述唯一字符串发送至所述服务器进行验证,若成功,则通过所述服务 器获取与所述唯一字符串对应的所述提交数据具体包括: 当打开所述新窗口之后,将所述新窗口的所述token字符串发送至所述服务器; 通过所述服务器按照所述本地IP+密钥的方式的字符串计算实时签名,与所述token字 符串的所述签名进行对比,若所述实时签名与所述签名一致,则通过所述服务器从redis采 用key获取与所述json字符串对应的所述提交数据; 通过所述服务器将redis的所述key-value数据进行删除。6. -种跨窗口提交数据的系统,其特征在于,包括:客户端和服务器; 所述客户端包括: 获取单元,用于通过旧窗口将提交数据传输至服务器进行缓存,并获取与所述提交数 据对应的唯一字符串; 设置单元,用于根据所述唯一字符串进行新窗口的HTML表单设置,并提交所述HTML表 单通过携带有所述唯一字符串的访问地址进入所述新窗口; 验证单元,用于当打开所述新窗口之后,将所述新窗口的所述唯一字符串发送至所述 服务器进行验证,若成功,则通过所述服务器获取与所述唯一字符串对应的所述提交数据。7. 根据权利要求6所述的跨窗口提交数据的系统,其特征在于,所述获取单元包括: 上报子单元,用于在所述旧窗口通过ajax方式将所述提交数据以post方式上报至所述 服务器; 第一获取子单元,用于通过所述服务器将所述提交数据缓存至redis中,并获取与所述 提交数据对应的token字符串。8. 根据权利要求7所述的跨窗口提交数据的系统,其特征在于,所述服务器包括: 生成单元,用于根据UUID方式生成唯一的前缀字符串; 签名计算单元,用于按照本地IP+密钥的方式的字符串用签名方法计算签名; 缓存单元,用于将所述提交数据以key-value数据的形式缓存至redis,其中,key为所 述前缀字符串+所述本地IP,value为所述提交数据对应的json字符串; 发送单元,用于将形式为前缀字符串-签名的所述token字符串发送给所述客户端。9. 根据权利要求8所述的跨窗口提交数据的系统,其特征在于,设置单元,具体用于根 据所述token字符串进行新窗口的HTML表单设置,并提交所述HTML表单通过携带有所述 token字符串的访问地址进入所述新窗口。10. 根据权利要求9所述的跨窗口提交数据的系统,其特征在于,验证单元具体包括: 发送子单元,用于当打开所述新窗口之后,将所述新窗口的所述token字符串发送至所 述服务器; 第二获取子单元,用于当通过所述服务器用按照所述本地IP+密钥的方式的字符串计 算实时签名,与所述token字符串的所述签名进行对比之后,若所述实时签名与所述签名一 致,则获取到通过所述服务器从redis采用key获取与所述json字符串对应的所述提交数 据。11. 根据权利要求9所述的跨窗口提交数据的系统,其特征在于,所述服务器还包括: 删除单元,用于当所述客户端获取所述实时签名与所述签名对比一致之后,将redis的 所述key-value数据进行删除。
【专利摘要】本发明实施例公开了本发明实施例提供了一种跨窗口提交数据的方法及系统,解决了目前直接在新窗口get请求并带上全部参数,虽然能实现数据传输,但导致了不安全,容易受到跨站攻击,用户数据的安全性低的技术问题。本发明实施例跨窗口提交数据的方法包括:通过旧窗口将提交数据传输至服务器进行缓存,并获取与提交数据对应的唯一字符串;根据唯一字符串进行新窗口的HTML表单设置,并提交HTML表单通过携带有唯一字符串的访问地址进入新窗口;当打开新窗口之后,将新窗口的唯一字符串发送至服务器进行验证,若成功,则通过服务器获取与唯一字符串对应的提交数据。
【IPC分类】H04L29/08, H04L29/06, H04L9/32
【公开号】CN105491116
【申请号】CN201510843186
【发明人】谭家华
【申请人】广州华多网络科技有限公司
【公开日】2016年4月13日
【申请日】2015年11月26日