CN113761489A - 验证方法、装置及设备、存储介质 - Google Patents
验证方法、装置及设备、存储介质 Download PDFInfo
- Publication number
- CN113761489A CN113761489A CN202010490913.1A CN202010490913A CN113761489A CN 113761489 A CN113761489 A CN 113761489A CN 202010490913 A CN202010490913 A CN 202010490913A CN 113761489 A CN113761489 A CN 113761489A
- Authority
- CN
- China
- Prior art keywords
- verification
- target
- script
- code information
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012795 verification Methods 0.000 title claims abstract description 522
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013515 script Methods 0.000 claims abstract description 214
- 238000004422 calculation algorithm Methods 0.000 claims description 32
- 238000013480 data collection Methods 0.000 claims description 23
- 238000010200 validation analysis Methods 0.000 claims description 5
- 230000006399 behavior Effects 0.000 description 15
- 230000002147 killing effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000005336 cracking Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000009193 crawling Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2133—Verifying human interaction, e.g., Captcha
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种验证方法、装置及设备、存储介质,该验证方法应用于服务器,包括:当接收到客户端发送的验证脚本请求时,从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,所述目标验证脚本用于收集所述客户端的验证数据;依据所述目标代码信息生成目标验证脚本,并向所述客户端发送所述目标验证脚本,以在所述客户端加载所述目标验证脚本;接收所述客户端返回的验证数据,并依据接收的验证数据进行验证。更有利于防止机器攻击。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及的是一种验证方法、装置及设备、存储介质。
背景技术
机器攻击是指通过攻击工具对后台系统(一般是服务器)重复发起相同的请求,起到攻击的作用。比如,通过机器自动重复执行秒杀、抢票、爬虫爬取网站数据、尝试用不同账号和密码登录等这些操作,都属于机器攻击。机器攻击导致后台系统存在风险,比如,通过机器抢票和秒杀等会影响公平或造成不当得利,爬取数据会非法收集互联网数据,而高频地尝试用不同账号和密码登录则是暴力破解用户密码的行为、会造成账号盗用风险,等等。
目前,主要防止机器攻击的手段是进行验证,只有通过验证才可为相应用户提供服务如抢票、秒杀等。比如,在登录或注册账号等时,尝尝会有一张有文字的图像,要求用户在输入框中输入图片中的文字、或者点击图片中特定的文字或内容;或者,显示一张未拼接完成的图片,会要求用户滑动其中的小图以完成拼图。
上述验证方式可以增加机器攻击的难度,且机器攻击通常不能很好地模拟人类的行为,因而可以发现并拦截一定量的机器攻击。但是,攻击者仍可以破解验证方式,通过篡改正常用户行为数据以伪造人类行为来通过上述的验证,因此,上述方式仍无法较好地防止机器攻击。
发明内容
有鉴于此,本申请提供一种验证方法、装置及设备、存储介质,更有利于防止机器攻击。
本申请第一方面提供一种验证方法,应用于服务器,包括:
当接收到客户端发送的验证脚本请求时,从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,所述目标验证脚本用于收集所述客户端的验证数据;
依据所述目标代码信息生成目标验证脚本,并向所述客户端发送所述目标验证脚本,以在所述客户端加载所述目标验证脚本;
接收所述客户端返回的验证数据,并依据接收的验证数据进行验证。
根据本申请的一个实施例,所述向所述客户端发送所述目标验证脚本之前,该方法还包括:
依据所述目标代码信息为所述目标验证脚本确定对应的序列号,并将序列号写入至所述目标验证脚本中;
生成所述目标验证脚本对应的有效截止时间,并将所述有效截止时间与序列号对应记录;
在接收所述客户端返回的验证数据时,还进一步接收所述序列号;依据接收的验证数据进行验证之前,该方法包括:
检查所述验证数据对应的时间戳是否超出与接收的序列号对应的有效截止时间;
若否,则继续依据接收的验证数据进行验证;
若是,则确定验证不通过。
根据本申请的一个实施例,该方法进一步包括:
当接收到客户端返回的携带所述序列号的验证结束消息、或者确定验证通过时,将已记录的所述序列号对应的有效截止时间更新为目标时间,所述目标时间为当前时间或早于当前时间。
根据本申请的一个实施例,所述目标代码信息至少包括:用于加密验证数据的加密信息;所述序列号至少用于指示所述加密信息对应的解密信息;
所述依据接收的验证数据进行验证进一步包括:
依据接收的序列号确定对应的解密信息,依据该解密信息对所述验证数据进行解密;
在解密成功的情况下,依据解密后的验证数据进行验证;否则,确定验证不通过。
根据本申请的一个实施例,所述目标代码信息还包括:所需收集的验证数据的类别;所述序列号还用于指示验证数据类别对应的验证方式;
依据接收的验证数据进行验证进一步包括:依据接收的序列号确定对应的验证方式,采用该验证方式并依据所述验证数据进行验证。
根据本申请的一个实施例,所述代码信息至少包括多个不同的加密信息,所述加密信息包括加密算法、和/或加密算法所用的密钥;
所述从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,包括:
从预设的加密信息中随机选取至少一个加密信息作为目标代码信息。
根据本申请的一个实施例,所述代码信息至少包括多个不同的验证数据类别;
所述从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,包括:
从预设的验证数据类别中随机选取至少一个验证数据类别作为目标代码信息。
根据本申请的一个实施例,所述代码信息至少包括多个不同的验证数据收集顺序;
所述从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,包括:
在选取出多个验证数据类别作为目标代码信息的情况下,从与验证数据类别的数量对应的验证数据收集顺序中随机选取出一个验证数据收集顺序,选取的验证数据收集顺序用于确定所述多个验证数据类别在所需生成的目标验证脚本中的顺序。
本申请第二方面提供一种验证装置,应用于服务器,包括:
随机选取模块,用于当接收到客户端发送的验证脚本请求时,从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,所述目标验证脚本用于收集所述客户端的验证数据;
脚本生成与发送模块,用于依据所述目标代码信息生成目标验证脚本,并向所述客户端发送所述目标验证脚本,以在所述客户端加载所述目标验证脚本;
验证模块,用于接收所述客户端返回的验证数据,并依据接收的验证数据进行验证。
根据本申请的一个实施例,所述脚本生成与发送模块向所述客户端发送所述目标验证脚本之前,还用于:
依据所述目标代码信息为所述目标验证脚本确定对应的序列号,并将序列号写入至所述目标验证脚本中;
生成所述目标验证脚本对应的有效截止时间,并将所述有效截止时间与序列号对应记录;
所述验证模块在接收所述客户端返回的验证数据时,还进一步接收所述序列号;所述验证模块依据接收的验证数据进行验证之前,还用于:
检查所述验证数据对应的时间戳是否超出与接收的序列号对应的有效截止时间;
若否,则继续依据接收的验证数据进行验证;
若是,则确定验证不通过。
根据本申请的一个实施例,该装置进一步包括:
有效截止时间更新模块,用于当接收到客户端返回的携带所述序列号的验证结束消息、或者确定验证通过时,将已记录的所述序列号对应的有效截止时间更新为目标时间,所述目标时间为当前时间或早于当前时间。
根据本申请的一个实施例,所述目标代码信息至少包括:用于加密验证数据的加密信息;所述序列号至少用于指示所述加密信息对应的解密信息;
所述验证模块依据接收的验证数据进行验证时,进一步用于:
依据接收的序列号确定对应的解密信息,依据该解密信息对所述验证数据进行解密;
在解密成功的情况下,依据解密后的验证数据进行验证;否则,确定验证不通过。
根据本申请的一个实施例,所述目标代码信息还包括:所需收集的验证数据的类别;所述序列号还用于指示验证数据类别对应的验证方式;
所述验证模块依据接收的验证数据进行验证时,进一步用于:依据接收的序列号确定对应的验证方式,采用该验证方式并依据所述验证数据进行验证。
根据本申请的一个实施例,所述代码信息至少包括多个不同的加密信息,所述加密信息包括加密算法、和/或加密算法所用的密钥;
所述随机选取模块从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息时,具体用于:
从预设的加密信息中随机选取至少一个加密信息作为目标代码信息。
根据本申请的一个实施例,所述代码信息至少包括多个不同的验证数据类别;
所述随机选取模块从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息时,具体用于:
从预设的验证数据类别中随机选取至少一个验证数据类别作为目标代码信息。
根据本申请的一个实施例,所述代码信息至少包括多个不同的验证数据收集顺序;
所述随机选取模块从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,包括:
在选取出多个验证数据类别作为目标代码信息的情况下,从与验证数据类别的数量对应的验证数据收集顺序中随机选取出一个验证数据收集顺序,选取的验证数据收集顺序用于确定所述多个验证数据类别在所需生成的目标验证脚本中的顺序。
本申请第三方面提供一种电子设备,包括处理器及存储器;所述存储器存储有可被处理器调用的程序;其中,所述处理器执行所述程序时,实现如前述实施例中所述的验证方法。
本申请第四方面提供一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现如前述实施例中所述的验证方法。
本申请实施例具有以下有益效果:
本申请实施例中,每次在收到客户端发送的验证脚本请求时,比如用户每次需要在客户端打开登录页面时,服务器都可通过随机的方式生成所需的目标验证脚本,即目标验证脚本是动态生成的,且目标验证脚本的内容具有随机性,向客户端发送该目标验证脚本,并在客户端中加载目标验证脚本,服务器通过目标验证脚本返回的验证数据进行验证,上述方式中,由于每次在客户端加载的都是随机生成的验证脚本,对于攻击者来说验证脚本具有随机性,所以,即使在一定时间内通过对某个验证脚本进行分析确定出了破解方式,但是下一次加载的又是另一个验证脚本,确定出的破解方式已不适用,这种情况下攻击者再选择花费大量的时间去做分析某个单一验证脚本将失去意义,所以,上述方式对于攻击者来说实现机器攻击是非常困难的事,因而更有利于防止机器攻击。
附图说明
图1是本申请一实施例的验证方法的流程示意图;
图2是本申请一实施例的客户端与服务器之间的交互示意图;
图3是本申请一实施例的验证装置的结构示意图;
图4是本申请一实施例的电子设备的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种器件,但这些信息不应限于这些术语。这些术语仅用来将同一类型的器件彼此区分开。例如,在不脱离本申请范围的情况下,第一器件也可以被称为第二器件,类似地,第二器件也可以被称为第一器件。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
相关方式中,以账号登录为例,用户每次需要在客户端打开登录页面时,客户端总会加载同一验证脚本,即服务器提供的验证脚本是静态不变的,通过该验证脚本来收集验证数据。
该方式中,由于服务器提供的验证脚本是静态不变的,即使该验证脚本已经通过一定的代码混淆手段进行混淆,攻击者仍然很容易通过逆向的方式实现反混淆,从而可在一定时间内确定出所需的验证数据,从而通过篡改正常用户行为数据以伪造人类行为来通过验证。
本申请实施例中,每次在收到客户端发送的验证脚本请求时,比如用户每次需要在客户端打开登录页面时,服务器都可通过随机的方式生成所需的目标验证脚本,即目标验证脚本是动态生成的,且目标验证脚本的内容具有随机性,向客户端发送该目标验证脚本,并在客户端中加载目标验证脚本,服务器通过目标验证脚本返回的验证数据进行验证,上述方式中,由于每次在客户端加载的都是随机生成的验证脚本,对于攻击者来说验证脚本具有随机性,所以,即使在一定时间内通过对某个验证脚本进行分析确定出了破解方式,但是下一次加载的又是另一个验证脚本,确定出的破解方式已不适用,这种情况下攻击者再选择花费大量的时间去做分析某个单一验证脚本将失去意义,所以,上述方式对于攻击者来说实现机器攻击是非常困难的事,因而更有利于防止机器攻击。
本申请实施例可以应用在需要预防机器攻击的场景中,比如用户注册、用户登录、商品秒杀、抢票等场景中,具体不做限定。
下面对本申请实施例的验证方法进行更具体的描述,但不应以此为限。
在一个实施例中,参看图1,一种验证方法,应用于服务器,该方法可以包括以下步骤:
S100:当接收到客户端发送的验证脚本请求时,从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,所述目标验证脚本用于收集所述客户端的验证数据;
S200:依据所述目标代码信息生成目标验证脚本,并向所述客户端发送所述目标验证脚本,以在所述客户端加载所述目标验证脚本;
S300:接收所述客户端返回的验证数据,并依据接收的验证数据进行验证。
本申请实施例中,验证方法的执行主体可以为服务器,该服务器可以是用于提供用户注册、用户登录、商品秒杀、抢票等服务的设备,可以由一台或多台计算机设备组成,具体不做限定。
客户端可以为终端设备如移动终端设备或PC设备。客户端中可以安装有浏览器,或者其他应用程序比如可实时聊天的应用程序,可通过浏览器或其他应用程序加载验证脚本以显示验证页面。在下面的实施例内容中,以在浏览器中加载验证脚本为例展开说明,但不应以此作为限制。
步骤S100中,当接收到客户端发送的验证脚本请求时,从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,所述目标验证脚本用于收集所述客户端的验证数据。
客户端可以浏览器需打开验证页面时,向服务器发送验证脚本请求。当然,也可以是在其他情况下发送验证脚本请求,比如在某个页面中进一步显示验证页面(验证页面可以作为该页面的一个窗口)时,具体发送时机不限制。
服务器在收到验证脚本请求时,可以从预设的代码信息中随机选取出至少一个目标代码信息。预设的代码信息可以用于生成N个不同的验证脚本,N大于1,优选来说N大于10,N越大则随机性越大,防止机器攻击的效果越好。这些验证脚本都可以用于收集验证数据,不同之处可以包括:代码语法、需收集的验证数据的类型、验证数据的收集顺序、加密方式、和/或加密算法所用的密钥等。
随机选取出的目标代码信息可以用于生成目标验证脚本,该目标验证脚本可以用于收集客户端的验证数据。由于目标代码信息是随机选取出的,所以生成的目标验证脚本的内容也是随机的,大概率与上一次生成的验证脚本是不同,即每次收到验证脚本请求都会动态生成所需的验证脚本,且生成的验证脚本的内容具有随机性,至少验证脚本不是一成不变的。
验证脚本的语言可以为javascript语言,或者其他脚本语言,具体不做限定,具体可以根据加载验证脚本的应用程序而定。比如在浏览器中加载的情况下,验证脚本可以采用javascript语言。
步骤S200中,依据所述目标代码信息生成目标验证脚本,并向所述客户端发送所述目标验证脚本,以在所述客户端加载所述目标验证脚本。
可选的,预设的代码信息可以包括多个采用不同代码混淆方式混淆后的验证脚本、多个采用不同加密算法的验证脚本、多个采用相同加密算法但不同密钥的验证脚本、多个验证数据的收集顺序不同的验证脚本、和/或多个用于收集不同类型的验证数据的验证脚本。这种情况下,可以从预设的代码信息中随机选取一个代码信息作为目标代码信息,该目标代码信息即可作为目标验证脚本。
或者,预设的代码信息可以包括上述的这些验证脚本被拆分所得的多个子模块,比如将多个采用不同代码混淆方式混淆后的验证脚本中的每个验证脚本拆分成多个子模块,这些子模块通过自由组合可以得到更多的验证脚本。这种情况下,可以从预设的代码信息中随机选取出可组合成一个完整的验证脚本的若干代码信息作为目标代码信息,通过目标代码信息的组合可得到目标验证脚本。
或者,预设代码信息可以包括多种代码语法、需收集的验证数据的类型、验证数据的收集顺序、加密方式、和/或加密算法所用的密钥等。这种情况下,可以从预设的代码信息中选择一种代码语法、若干需收集的验证数据的类型、一种收集顺序、一个密钥作为目标代码信息,基于这些目标代码信息可生成目标验证脚本,比如可以按照收集顺序将需收集的验证数据的类型填入到预设脚本模板中,将密钥填入到该预设脚本模板中,按照选择的代码语法改写该预设脚本模板,比如将“var str=’win’;”修改为“var x='w',y=String.fromCharCode(72+1).toLocaleLowerCase();var str=(x+y+'n');”,从而得到目标验证脚本。
代码混淆方式有多种,包括:将代码中的各种元素,如变量、函数、类的名字改写成无意义的名字,比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途;重写代码中的部分逻辑,将其变成功能上等价,但是更难理解的形式,比如将for循环改写成while循环,将循环改写成递归,精简中间变量,等等;打乱代码的格式,比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等等。针对同一代码,采用不同代码混淆方式进行混淆可以得到截然不同的两个代码,这两个代码实现的功能可以相同。
为了保证验证数据的安全性,避免在网络传输过程中被攻击者截取到验证数据明文,增加机器攻击难度,可以通过加密算法对收集的验证数据进行加密,目标验证脚本可以包含所需采用的加密算法。在加密算法需要密钥时,目标验证脚本还包含加密算法所用的密钥。
采用密钥的加密算法有多种,密钥不同时加密结果通常是不同的,所以,服务器可生成的不同验证脚本可以采用相同的加密算法但采用不同的密钥,同样可以起到所需的加密效果。加密算法比如有AES加密算法(一种对称的分组加密技术)、RSA(非对称加密算法)等。
在生成目标验证脚本之后,可以将目标验证脚本发送给客户端,客户端可以加载目标验证脚本以显示验证页面,从而收集验证数据。以浏览器为例,客户端可以通过浏览器加载验证脚本显示验证页面,在验证页面中可提示用户所需输入的验证数据,使得验证脚本可收集验证数据。
比如,验证页面可以显示一张有文字的图像,要求用户在输入框中输入图片中的文字、或者点击图片中特定的文字或内容;或者,验证页面可以显示一张未拼接完成的图片,会要求用户滑动其中的小图以完成拼图。
验证脚本可以收集用户操作所产生的数据,同时还可以从客户端收集其他的数据比如设备信息。
可选的,验证数据可以包括用户行为数据和客户端的设备信息。用户行为数据比如可以包括:输入的文字信息、用户点击的文字或内容、或者用户滑动小图的滑动数据(比如包括速度、加速度、停顿点、停顿时间等)等,具体根据要求用户执行的动作而定。设备信息比如可以包括:设备IDFA(IdentityforAdvertisers,广告商设备标识符,在iOS系统中常被用来唯一标识设备)、IDFV(identifierForVendor,厂商设备标识符,在iOS系统中常被用来唯一标识设备)、SSID(服务集标识)、设备标识码、设备的MAC地址、IP地址、浏览器信息、cookie信息、屏幕分辨率等,具体可根据设备类型而定。
当然,上述只是验证数据的举例,实际还可以为其他数据,或者还可以包括其他数据,具体不做限定。
目标验证脚本收集到验证数据之后,客户端可将收集的验证数据返回给服务器。
可选的,在客户端加载目标验证脚本之后,用户可以进行多次验证,如此可以得到多个验证数据。这种情况下,客户端可以收集到一个验证数据便发送给服务器,或者可以分次批量地将验证数据发送给服务器,或者在用户点击结束验证按钮(比如登录按钮)时一次性将收集的验证数据发送给服务器,具体方式不限。
步骤S300中,接收所述客户端返回的验证数据,并依据接收的验证数据进行验证。
服务器接收到客户端返回的验证数据之后,便可依据接收的验证数据进行验证。以验证数据包括用户行为数据和设备信息为例,依据接收的验证数据进行验证时,可以检查当前接收的验证数据与之前接收的验证数据中是否存在M1个验证数据的设备信息相同(来自同一设备),如果是,可以确定当前操作为机器攻击,确定验证不通过;如果否,则检查当前接收的验证数据中的用户行为数据是否与预设的正常用户行为数据匹配,若匹配,则可以确定验证通过,若不匹配,确定验证不通过,进一步的,还可以在之前已存在M2个验证数据的用户行为数据与预设的正常用户行为数据不匹配的情况下,确定当前操作为机器攻击。当然,上述验证方式只是举例,并不作为限制。
可选的,在通过验证的情况下,可以为客户端提供相应的服务,比如账号登录(当然还需检查账号密码是否合法)、账号注册、秒杀、抢票等。
可选的,在账号登录的场景下,若确定当前操作为机器攻击,还可将该账号加入至黑名单,禁止服务器为该账号提供服务,在允许的情况下(比如在黑名单中的时长达到预设时长)再移出黑名单,具体不做限定。
在一个实施例中,步骤S200中,所述向所述客户端发送所述目标验证脚本之前,该方法还包括以下步骤:
S210:依据所述目标代码信息为所述目标验证脚本确定对应的序列号,并将序列号写入至所述目标验证脚本中;
S220:生成所述目标验证脚本对应的有效截止时间,并将所述有效截止时间与序列号对应记录。
相应的,步骤S300中,在接收所述客户端返回的验证数据时,还进一步接收所述序列号。
相应的,依据接收的验证数据进行验证之前,该方法包括:
S310:检查所述验证数据对应的时间戳是否超出与接收的序列号对应的有效截止时间;
S320:若否,则继续依据接收的验证数据进行验证;
S330:若是,则确定验证不通过。
本实施例中,一方面,由于服务器中会动态生成验证脚本,所以可能在一段时间内会生成多个验证脚本,服务器在收到验证数据时,需要分辨这些验证数据分别是哪个验证脚本收集的,因而,步骤S210中,还依据目标代码信息为所述目标验证脚本确定对应的序列号,并将序列号写入至所述目标验证脚本中。
客户端在返回目标验证脚本收集的验证数据时,还会将目标验证脚本中的序列号一并返回,从而服务器可以确定该验证数据来自该序列号对应的目标验证脚本,从而可以确定后续的操作,比如依据该验证数据进行验证的方式。
依据所述目标代码信息为所述目标验证脚本确定对应的序列号的方式,举例来说,预设的代码信息包括多种代码语法、需收集的验证数据的类型、验证数据的收集顺序、加密算法、和/或加密算法所用的密钥,每个代码信息对应于不同标识字符,比如不同代码语法对应于不同标识字符、代码语法和类型也对应于不同标识字符,如此,在随机选取出目标代码信息时,可以一并确定每个目标代码信息对应的标识字符,将这些标识字符组成为序列号。当然,此处只是确定序列号的例子,并不作为限制。
本实施例中,另一方面,步骤S220中,还生成所述目标验证脚本对应的有效截止时间,该有效截止时间限制了目标验证脚本的生命周期,在目标验证脚本返回的验证数据对应的时间戳超出对应的有效截止时间时,说明收集该验证数据时目标验证脚本已经失效,此时可直接确定验证不通过,如果未超过则继续依据接收的验证数据进行验证。
有效截止时间比如可以为生成目标验证脚本之后的时间点,比如生成时间验证脚本的时间点为T1,有效截止时间为T2,该T2可以比T1晚一天,具体不做限定。
由于目标验证脚本被限制了有效截止时间,所以,即使攻击者破解了目标验证脚本、并且一直不关闭验证页面也不重新发起验证脚本,在达到有效截止时间时,目标验证脚本也会自动失效,收集的验证数据无法通过验证,所以本实施例进一步增加了机器攻击的难度。
在步骤S220中,将所述有效截止时间与序列号对应记录,从而在收到验证数据和序列号的情况下,可以根据序列号来找到对应的有效截止时间,进而在步骤S310中,检查所述验证数据对应的时间戳是否超出与接收的序列号对应的有效截止时间。
可选的,验证数据对应的时间戳可以表示目标验证脚本收集该验证数据的收集时间,可以与验证数据一同返回给服务器;或者,验证数据对应的时间戳可以表示服务器收到该验证数据的时间,具体不做限定。
在一个实施例中,该方法进一步包括以下步骤:
当接收到客户端返回的携带所述序列号的验证结束消息时,将已记录的所述序列号对应的有效截止时间更新为目标时间,所述目标时间为当前时间或早于当前时间。
以账号登录场景为例,验证结束消息比如可以为客户端发送的账号登录请求,用户在验证页面上执行完验证操作之后,会点击登录按钮,此时会触发客户端发送账号登录请求给服务器,服务器收到账号登录请求后,将已记录的所述序列号对应的有效截止时间更新为目标时间,所述目标时间为当前时间或早于当前时间,即目标验证脚本当下即失效,后续收集的验证数据将不再通过验证。如此,可以保证目标验证脚本在一次登录之后即失效,避免重复登录或不同账号登录时仍可通过该目标验证脚本来验证,进一步增加机器攻击的难度。
当然,上述只是用账号登录场景来举例,其他防止机器攻击的场景同样适用,只要用户在输入验证数据之后会触发客户端发送验证结束消息给服务器即可。
在一个实施例中,该方法进一步包括以下步骤:
当确定验证通过时,将已记录的所述序列号对应的有效截止时间更新为目标时间,所述目标时间为当前时间或早于当前时间。
本实施例中,可以保证目标验证脚本在一次验证通过之后即失效,不允许下一次验证,这样的话,机器攻击时即使一次验证通过了,后续也无法再用已破解出的同一验证方式通过验证,进一步增加机器攻击的难度。
在一个实施例中,所述目标代码信息至少包括:用于加密验证数据的加密信息;所述序列号至少用于指示所述加密信息对应的解密信息。
比如,序列号包含加密信息对应的标识字符,因而可以根据标识字符确定对应的加密信息,进而可以确定加密信息对应的解密信息(比如在服务器中预先就记录好加密信息与解密信息的对应关系,从而根据对应关系可确定解密信息)。
其中,加密信息和解密信息可以为加密算法与对应的解密算法;或者加密信息和解密信息可以为加密密钥(加密算法所用的密钥)和解密密钥(对应的解密算法所用的密码),当然,在对称加密算法中,加密信息和解密信息可以为同一密钥。
相应的,步骤S300中,所述依据接收的验证数据进行验证进一步包括:
依据接收的序列号确定对应的解密信息,依据该解密信息对所述验证数据进行解密;
在解密成功的情况下,依据解密后的验证数据进行验证;否则,确定验证不通过。
以加密信息为加密密钥为例,依据接收的序列号确定对应的解密密钥,依据解密密钥对验证数据进行解密,如果解密成功,说明加密密钥与解密密钥是对应的,依据解密后的验证数据进行验证,否则,可以直接确定验证不通过。
在一个实施例中,所述目标代码信息还包括:所需收集的验证数据的类别;所述序列号还用于指示验证数据类别对应的验证方式。
比如,序列号包含验证数据类别对应的标识字符,因而可以根据标识字符确定对应的验证数据类别,进而可以确定验证数据类别对应的验证方式(比如在服务器中预先就记录好验证数据类别与验证方式的对应关系,从而根据对应关系可确定验证方式)。
相应的,步骤S300中,依据接收的验证数据进行验证进一步包括:依据接收的序列号确定对应的验证方式,采用该验证方式并依据所述验证数据进行验证。
序列号中可以包含1种或多种不同的验证数据类别,可以确定出每种验证数据类别对应的验证方式,然后综合采用这些验证方式并依据验证数据进行验证;或者,可以确定出所有验证数据类型对应的一种验证方式,采用该验证方式并依据验证数据进行验证,具体方式不限。
在一个实施例中,所述代码信息至少包括多个不同的加密信息,所述加密信息包括加密算法、和/或加密算法所用的密钥;
所述从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,包括:
从预设的加密信息中随机选取至少一个加密信息作为目标代码信息。
比如,在所有验证脚本采用同一加密算法的情况下,预设的代码信息中包括加密算法所用的多个不同的密钥,在收到客户端发送的验证脚本请求时,可以从这多个不同的密钥中随机选取一个密钥作为目标代码信息。
在一个实施例中,所述代码信息至少包括多个不同的验证数据类别;
所述从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,包括:
从预设的验证数据类别中随机选取至少一个验证数据类别作为目标代码信息。
比如,预设的验证数据类别中包括:用户行为数据类别和设备信息类别,其中,用户行为数据类别又分为多个不同的子行为类别,设备信息类别又分为多个不同的子设备信息类别,在收到客户端发送的验证脚本请求时,可以从多个不同的子行为类别中随机选取至少一个子行为类别比如F11和F12,并从多个不同的子设备信息类别中随机选取至少一个子设备信息类别比如F21和F22,将选取的子行为类别和子设备信息类别作为目标代码信息。
在一个实施例中,所述代码信息至少包括多个不同的验证数据收集顺序。
预设的代码信息可以包括多种不同的验证数据收集顺序,包括2种验证数据类型情况下的两个收集顺序、3种验证数据类型情况下的多个收集顺序、4种验证数据类型情况下的多个收集顺序,等等。
所述从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,包括:
在选取出多个验证数据类别作为目标代码信息的情况下,从与验证数据类别的数量对应的验证数据收集顺序中随机选取出一个验证数据收集顺序,选取的验证数据收集顺序用于确定所述多个验证数据类别在所需生成的目标验证脚本中的顺序。
比如在随机选取出四个验证数据类别F11、F12、F21和F22的情况下,可以从4种验证数据类型情况对应的多个收集顺序中随机选取出一种手机顺序作为目标代码信息,比如随机选取出的收集顺序为F21、F12、F11和F22,则可以将这四个验证数据类别在所需生成的目标验证脚本中的顺序确定为F21、F12、F11和F22,后续在收集验证数据时,会按照F21、F12、F11、F22的从先到后的顺序进行收集。
可以理解,上述确定目标代码信息的几个实施例也可以进行结合,即可以随机选取出至少一个加密信息、至少一个验证数据类别与验证数据收集顺序作为目标代码信息。
当然,目标代码信息还可以包含其他信息,比如代码语法等,具体不做限定。
下面结合图2来说明本申请实施例的验证方法:
客户端在打开验证页面时,会发送验证脚本请求A1给服务器。服务器收到验证脚本请求A1时,会从预设的代码信息中随机选取出目标代码信息,并依据目标代码信息生成目标验证脚本B1,并将目标验证脚本B1发送给客户端。客户端收到目标验证脚本B1之后,会加载该目标验证脚本B1以显示验证页面,通过目标验证脚本B1收集验证数据C1,并将验证数据C1返回给服务器。服务器收到验证数据C1之后,依据验证数据C1进行验证。
当客户端重新打开验证页面时,会发送验证脚本请求A2给服务器。服务器收到验证脚本请求A2时,会从预设的代码信息中随机选取出目标代码信息,并依据目标代码信息生成目标验证脚本B2,并将目标验证脚本B2发送给客户端。客户端收到目标验证脚本B2之后,会加载该目标验证脚本B2以显示验证页面,通过目标验证脚本B2收集验证数据C2,并将验证数据C2返回给服务器。服务器收到验证数据C2之后,依据验证数据C2进行验证。
其中,由于每次目标代码信息都是随机选取的,所以目标验证脚本B1和B2中的内容大概率是不同的,那么,攻击者即使逆向分析出了目标验证脚本B1中的内容,即使能通过验证也只能短暂的,即只能实现短暂的攻击,在重新打开验证页面之后,加载的是目标验证脚本B2,之前的方式已经无法通过验证,如果还要攻击的话,还需要重新对目标验证脚本B2进行逆向分析,时间成本非常大,因此,机器攻击难度很大,可以有效防止机器攻击。
本申请还提供一种验证装置,应用于服务器,参看图3,该验证装置100包括:
随机选取模块101,用于当接收到客户端发送的验证脚本请求时,从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,所述目标验证脚本用于收集所述客户端的验证数据;
脚本生成与发送模块102,用于依据所述目标代码信息生成目标验证脚本,并向所述客户端发送所述目标验证脚本,以在所述客户端加载所述目标验证脚本;
验证模块103,用于接收所述客户端返回的验证数据,并依据接收的验证数据进行验证。
在一个实施例中,所述脚本生成与发送模块向所述客户端发送所述目标验证脚本之前,还用于:
依据所述目标代码信息为所述目标验证脚本确定对应的序列号,并将序列号写入至所述目标验证脚本中;
生成所述目标验证脚本对应的有效截止时间,并将所述有效截止时间与序列号对应记录;
所述验证模块在接收所述客户端返回的验证数据时,还进一步接收所述序列号;所述验证模块依据接收的验证数据进行验证之前,还用于:
检查所述验证数据对应的时间戳是否超出与接收的序列号对应的有效截止时间;
若否,则继续依据接收的验证数据进行验证;
若是,则确定验证不通过。
在一个实施例中,该装置进一步包括:
有效截止时间更新模块,用于当接收到客户端返回的携带所述序列号的验证结束消息、或者确定验证通过时,将已记录的所述序列号对应的有效截止时间更新为目标时间,所述目标时间为当前时间或早于当前时间。
在一个实施例中,所述目标代码信息至少包括:用于加密验证数据的加密信息;所述序列号至少用于指示所述加密信息对应的解密信息;
所述验证模块依据接收的验证数据进行验证时,进一步用于:
依据接收的序列号确定对应的解密信息,依据该解密信息对所述验证数据进行解密;
在解密成功的情况下,依据解密后的验证数据进行验证;否则,确定验证不通过。
在一个实施例中,所述目标代码信息还包括:所需收集的验证数据的类别;所述序列号还用于指示验证数据类别对应的验证方式;
所述验证模块依据接收的验证数据进行验证时,进一步用于:依据接收的序列号确定对应的验证方式,采用该验证方式并依据所述验证数据进行验证。
在一个实施例中,所述代码信息至少包括多个不同的加密信息,所述加密信息包括加密算法、和/或加密算法所用的密钥;
所述随机选取模块从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息时,具体用于:
从预设的加密信息中随机选取至少一个加密信息作为目标代码信息。
在一个实施例中,所述代码信息至少包括多个不同的验证数据类别;
所述随机选取模块从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息时,具体用于:
从预设的验证数据类别中随机选取至少一个验证数据类别作为目标代码信息。
在一个实施例中,所述代码信息至少包括多个不同的验证数据收集顺序;
所述随机选取模块从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,包括:
在选取出多个验证数据类别作为目标代码信息的情况下,从与验证数据类别的数量对应的验证数据收集顺序中随机选取出一个验证数据收集顺序,选取的验证数据收集顺序用于确定所述多个验证数据类别在所需生成的目标验证脚本中的顺序。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元。
本申请还提供一种电子设备,包括处理器及存储器;所述存储器存储有可被处理器调用的程序;其中,所述处理器执行所述程序时,实现如前述实施例中所述的验证方法。
本申请验证装置的实施例可以应用在电子设备上。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,图4是本申请根据一示例性实施例示出的验证装置100所在电子设备的一种硬件结构图,除了图4所示的处理器510、内存530、接口520、以及非易失性存储器540之外,实施例中装置100所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
本申请还提供一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现如前述实施例中所述的验证方法。
本申请可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。机器可读存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。机器可读存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (11)
1.一种验证方法,其特征在于,应用于服务器,包括:
当接收到客户端发送的验证脚本请求时,从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,所述目标验证脚本用于收集所述客户端的验证数据;
依据所述目标代码信息生成目标验证脚本,并向所述客户端发送所述目标验证脚本,以在所述客户端加载所述目标验证脚本;
接收所述客户端返回的验证数据,并依据接收的验证数据进行验证。
2.如权利要求1所述的验证方法,其特征在于,所述向所述客户端发送所述目标验证脚本之前,该方法还包括:
依据所述目标代码信息为所述目标验证脚本确定对应的序列号,并将序列号写入至所述目标验证脚本中;
生成所述目标验证脚本对应的有效截止时间,并将所述有效截止时间与序列号对应记录;
在接收所述客户端返回的验证数据时,还进一步接收所述序列号;依据接收的验证数据进行验证之前,该方法包括:
检查所述验证数据对应的时间戳是否超出与接收的序列号对应的有效截止时间;
若否,则继续依据接收的验证数据进行验证;
若是,则确定验证不通过。
3.如权利要求2所述的验证方法,其特征在于,该方法进一步包括:
当接收到客户端返回的携带所述序列号的验证结束消息、或者确定验证通过时,将已记录的所述序列号对应的有效截止时间更新为目标时间,所述目标时间为当前时间或早于当前时间。
4.如权利要求2所述的验证方法,其特征在于,所述目标代码信息至少包括:用于加密验证数据的加密信息;所述序列号至少用于指示所述加密信息对应的解密信息;
所述依据接收的验证数据进行验证进一步包括:
依据接收的序列号确定对应的解密信息,依据该解密信息对所述验证数据进行解密;
在解密成功的情况下,依据解密后的验证数据进行验证;否则,确定验证不通过。
5.如权利要求2所述的验证方法,其特征在于,所述目标代码信息还包括:所需收集的验证数据的类别;所述序列号还用于指示验证数据类别对应的验证方式;
依据接收的验证数据进行验证进一步包括:依据接收的序列号确定对应的验证方式,采用该验证方式并依据所述验证数据进行验证。
6.如权利要求1所述的验证方法,其特征在于,所述代码信息至少包括多个不同的加密信息,所述加密信息包括加密算法、和/或加密算法所用的密钥;
所述从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,包括:
从预设的加密信息中随机选取至少一个加密信息作为目标代码信息。
7.如权利要求1所述的验证方法,其特征在于,所述代码信息至少包括多个不同的验证数据类别;
所述从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,包括:
从预设的验证数据类别中随机选取至少一个验证数据类别作为目标代码信息。
8.如权利要求7所述的验证方法,其特征在于,所述代码信息至少包括多个不同的验证数据收集顺序;
所述从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,包括:
在选取出多个验证数据类别作为目标代码信息的情况下,从与验证数据类别的数量对应的验证数据收集顺序中随机选取出一个验证数据收集顺序,选取的验证数据收集顺序用于确定所述多个验证数据类别在所需生成的目标验证脚本中的顺序。
9.一种验证装置,其特征在于,应用于服务器,包括:
随机选取模块,用于当接收到客户端发送的验证脚本请求时,从预设的代码信息中随机选取出用于生成目标验证脚本的至少一个目标代码信息,所述目标验证脚本用于收集所述客户端的验证数据;
脚本生成与发送模块,用于依据所述目标代码信息生成目标验证脚本,并向所述客户端发送所述目标验证脚本,以在所述客户端加载所述目标验证脚本;
验证模块,用于接收所述客户端返回的验证数据,并依据接收的验证数据进行验证。
10.一种电子设备,其特征在于,包括处理器及存储器;所述存储器存储有可被处理器调用的程序;其中,所述处理器执行所述程序时,实现如权利要求1-8中任一项所述的验证方法。
11.一种机器可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现如权利要求1-8中任一项所述的验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010490913.1A CN113761489B (zh) | 2020-06-02 | 2020-06-02 | 验证方法、装置及设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010490913.1A CN113761489B (zh) | 2020-06-02 | 2020-06-02 | 验证方法、装置及设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113761489A true CN113761489A (zh) | 2021-12-07 |
CN113761489B CN113761489B (zh) | 2024-01-26 |
Family
ID=78782892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010490913.1A Active CN113761489B (zh) | 2020-06-02 | 2020-06-02 | 验证方法、装置及设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113761489B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030231207A1 (en) * | 2002-03-25 | 2003-12-18 | Baohua Huang | Personal e-mail system and method |
CN1845489A (zh) * | 2005-04-06 | 2006-10-11 | 腾讯科技(深圳)有限公司 | 验证信息生成装置及其方法、反自动机验证装置及其方法 |
CN101510870A (zh) * | 2008-04-23 | 2009-08-19 | 北京德瑞海普科技有限公司 | 基于脚本和模块驱动的代码级网络协议仿真验证组织方法 |
CN101572696A (zh) * | 2008-04-29 | 2009-11-04 | 华为技术有限公司 | 一种网页表单数据验证的方法和装置 |
CN101834866A (zh) * | 2010-05-05 | 2010-09-15 | 北京来安科技有限公司 | 一种cc攻击防护方法及其系统 |
CN102208978A (zh) * | 2010-03-30 | 2011-10-05 | 腾讯科技(深圳)有限公司 | 验证输入的系统及方法 |
US20120180128A1 (en) * | 2010-03-10 | 2012-07-12 | International Business Machines Corporation | Preventing Cross-Site Request Forgery Attacks on a Server |
CN103763104A (zh) * | 2014-01-02 | 2014-04-30 | 中国移动(深圳)有限公司 | 一种动态验证的方法及系统 |
KR20140061788A (ko) * | 2012-11-14 | 2014-05-22 | 주식회사 예티소프트 | 무결성이 보장되는 프로그램 코드를 이용한 보안 방법 및 서버 |
US20150341333A1 (en) * | 2014-05-22 | 2015-11-26 | Alibaba Group Holding Limited | Method, apparatus, and system for providing a security check |
US20170013044A1 (en) * | 2013-08-21 | 2017-01-12 | Limited Liability Company Mail.Ru | Systems and methods for detecting a proxy |
CN107454041A (zh) * | 2016-05-31 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 防止服务器被攻击的方法及装置 |
CN109614844A (zh) * | 2018-10-16 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种链路验证方法、装置及设备 |
-
2020
- 2020-06-02 CN CN202010490913.1A patent/CN113761489B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030231207A1 (en) * | 2002-03-25 | 2003-12-18 | Baohua Huang | Personal e-mail system and method |
CN1845489A (zh) * | 2005-04-06 | 2006-10-11 | 腾讯科技(深圳)有限公司 | 验证信息生成装置及其方法、反自动机验证装置及其方法 |
CN101510870A (zh) * | 2008-04-23 | 2009-08-19 | 北京德瑞海普科技有限公司 | 基于脚本和模块驱动的代码级网络协议仿真验证组织方法 |
CN101572696A (zh) * | 2008-04-29 | 2009-11-04 | 华为技术有限公司 | 一种网页表单数据验证的方法和装置 |
US20120180128A1 (en) * | 2010-03-10 | 2012-07-12 | International Business Machines Corporation | Preventing Cross-Site Request Forgery Attacks on a Server |
CN102208978A (zh) * | 2010-03-30 | 2011-10-05 | 腾讯科技(深圳)有限公司 | 验证输入的系统及方法 |
CN101834866A (zh) * | 2010-05-05 | 2010-09-15 | 北京来安科技有限公司 | 一种cc攻击防护方法及其系统 |
KR20140061788A (ko) * | 2012-11-14 | 2014-05-22 | 주식회사 예티소프트 | 무결성이 보장되는 프로그램 코드를 이용한 보안 방법 및 서버 |
US20170013044A1 (en) * | 2013-08-21 | 2017-01-12 | Limited Liability Company Mail.Ru | Systems and methods for detecting a proxy |
CN103763104A (zh) * | 2014-01-02 | 2014-04-30 | 中国移动(深圳)有限公司 | 一种动态验证的方法及系统 |
US20150341333A1 (en) * | 2014-05-22 | 2015-11-26 | Alibaba Group Holding Limited | Method, apparatus, and system for providing a security check |
CN107454041A (zh) * | 2016-05-31 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 防止服务器被攻击的方法及装置 |
US20190109861A1 (en) * | 2016-05-31 | 2019-04-11 | Alibaba Group Holding Limited | Method and device for preventing server from being attacked |
CN109614844A (zh) * | 2018-10-16 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种链路验证方法、装置及设备 |
Non-Patent Citations (3)
Title |
---|
QINGDONG MENG等: "Functional verification of external memory interface IP core based on restricted random testbench", 《2010 2ND INTERNATIONAL CONFERENCE ON COMPUTER ENGINEERING AND TECHNOLOGY》, pages 253 - 257 * |
沈大勇: "基于系统调用的行为阻断反病毒技术的研究与实现", 《中国优秀硕士学位论文全文数据库》, pages 138 - 80 * |
黄萍等: "具有隐私保护的Web邮件客户端", 《计算机应用研究》, vol. 27, no. 02, pages 348 - 350 * |
Also Published As
Publication number | Publication date |
---|---|
CN113761489B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10749884B2 (en) | Systems and methods for detecting and preventing spoofing | |
CN104166822B (zh) | 一种数据保护的方法和装置 | |
ES2679286T3 (es) | Distinguir usuarios válidos de robots, OCR y solucionadores de terceras partes cuando se presenta CAPTCHA | |
US20160373262A1 (en) | Systems and methods for digital certificate security | |
CN107094261A (zh) | 视频播放的权限校验方法及装置 | |
CN107579991A (zh) | 一种对客户端进行云端防护认证的方法、服务器和客户端 | |
CN112182614B (zh) | 一种动态Web应用防护系统 | |
CN106411823A (zh) | 一种基于cdn的访问控制方法及相关设备 | |
WO2021137769A1 (en) | Method and apparatus for sending and verifying request, and device thereof | |
CN107040799A (zh) | 视频播放的权限校验方法及装置 | |
Zhang et al. | Don't leak your keys: Understanding, measuring, and exploiting the appsecret leaks in mini-programs | |
CN109948333A (zh) | 一种账户攻击的安全防御方法及装置 | |
Bower et al. | Identifying javascript skimmers on high-value websites | |
CN113794679B (zh) | 防止自动脚本抢号的方法及系统 | |
CN113761489B (zh) | 验证方法、装置及设备、存储介质 | |
CN102027728A (zh) | 用于战胜中间人计算机黑客技术的方法和系统 | |
CN114401117A (zh) | 基于区块链的账户登录验证系统 | |
Tellenbach et al. | Security of data science and data science for security | |
JP2007065789A (ja) | 認証システム及び方法 | |
KR20200048276A (ko) | 디지털 포렌식 데이터 복호화 장치 | |
Vilà | Identifying and combating cyber-threats in the field of online banking. | |
US20230362187A1 (en) | Event and rule-based dynamic security test system | |
Astély et al. | Penetration Testing Ten Popular Swedish Android Applications | |
Aguilà Vilà | Identifying and combating cyber-threats in the field of online banking | |
Forrester | An exploration into the use of webinjects by financial malware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |