CN113496024B - 一种Web页面的登录方法、装置、存储介质及电子设备 - Google Patents

一种Web页面的登录方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN113496024B
CN113496024B CN202111040778.1A CN202111040778A CN113496024B CN 113496024 B CN113496024 B CN 113496024B CN 202111040778 A CN202111040778 A CN 202111040778A CN 113496024 B CN113496024 B CN 113496024B
Authority
CN
China
Prior art keywords
web page
web
fingerprint information
client
login
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.)
Active
Application number
CN202111040778.1A
Other languages
English (en)
Other versions
CN113496024A (zh
Inventor
孙悦
房华锋
郭晓鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Trusfort Technology Co ltd
Original Assignee
Beijing Trusfort Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Trusfort Technology Co ltd filed Critical Beijing Trusfort Technology Co ltd
Priority to CN202111040778.1A priority Critical patent/CN113496024B/zh
Publication of CN113496024A publication Critical patent/CN113496024A/zh
Application granted granted Critical
Publication of CN113496024B publication Critical patent/CN113496024B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开一种Web页面的登录方法、装置、存储介质及电子设备,Web页面的登录方法包括:获取Web客户端的第一指纹信息、Web客户端待登录的Web页面的信息和本次Web页面登录对应的时间,并根据Web客户端的第一指纹信息、Web页面的信息和时间计算动态关键值;接收Web客户端的Web页面登录请求,Web页面登录请求携带动态关键值;根据动态关键值解析出Web客户端的第二指纹信息;将第二指纹信息发送至Web服务器,与Web服务器存储的第一指纹信息进行比对,两者一致时,Web页面登录成功。使得Web客户端用户在登录Web服务器时,能够有效保护Web客户端用户的隐私信息。

Description

一种Web页面的登录方法、装置、存储介质及电子设备
技术领域
本发明涉及Web服务器安全技术领域,尤其涉及一种Web页面的登录方法、装置、存储介质及电子设备。
背景技术
随着移动互联网、万物互联等趋势的发展,越来越多的设备接入Web服务器。对Web服务器的攻击手段也层出不穷,由单一的手动攻击到批量的自动化攻击,已经愈发的智能化、自动化和隐蔽化。据相关数据统计,网络攻击的攻击目标有75%是Web应用,网络攻击的攻击流量有90%是自动化攻击,同时,已检出有漏洞的网站中78%的漏洞修复不及时。使得目前Web服务器面临以下多种严重的安全威胁:虚假流量攻击、虚假流量持续访问增加服务器压力、用户隐私信息泄露等。
因此,如何抵御针对Web服务器的恶意自动化攻击、保护用户隐私变得越来越重要。现有技术中仅仅通过简单的变量代理(将静态页面数据转化为动态页面数据)、源码混淆(打乱访问页面代码)的手段对来自Web客户端的访问请求和登录请求进行处理,不能保证Web客户端信息、以及与用户账号相关联的关键信息不被泄漏。因此,亟需提供一种Web页面的登录方法,当Web客户端用户在登录Web服务器时,能够有效保护Web客户端以及用户的隐私信息,防止用户在登录个人账户时被恶意分析、获取用户账户信息,从而发起自动化攻击。
发明内容
本发明提供一种Web页面的登录方法、装置、存储介质及电子设备,以至少解决现有技术中存在的以上技术问题。
本发明一方面提供一种Web页面的登录方法,包括:
获取Web客户端的第一指纹信息、所述Web客户端待登录的Web页面的信息和本次Web页面登录对应的时间,并根据所述Web客户端的第一指纹信息、所述Web页面的信息和所述时间计算动态关键值;接收Web客户端的Web页面登录请求,所述Web页面登录请求携带所述动态关键值;根据所述动态关键值解析出所述Web客户端的第二指纹信息;将所述第二指纹信息发送至Web服务器,与Web服务器存储的所述第一指纹信息进行比对,两者一致时,所述Web页面登录成功。
本发明另一方面提供一种Web页面的登录装置,包括:动态关键值计算模块,用于获取Web客户端的第一指纹信息、所述Web客户端待登录的Web页面的信息和本次Web页面登录对应的时间,并根据所述Web客户端的第一指纹信息、所述Web页面的信息和所述时间计算动态关键值;登录请求接收模块,用于接收Web客户端的Web页面登录请求,所述Web页面登录请求携带所述动态关键值;解析模块,用于根据所述动态关键值解析出所述Web客户端的第二指纹信息;登录模块,用于将所述第二指纹信息发送至Web服务器,与Web服务器存储的所述第一指纹信息进行比对,两者一致时,所述Web页面登录成功。
本发明再一方面提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本发明所述的Web页面的登录方法。
本发明还一方面提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本发明所述的Web页面的登录方法。
上述Web页面的登录方法、装置、存储介质及电子设备,能够在不影响登录页面显示的前提下,将Web页面的关键元素和与用户信息相关的关键元素处理为动态的、不断变化的;用户在登录个人账号时,无法直接定位到关键元素,从而防止关键元素这类敏感信息被脚本嗅探到,杜绝恶意的自动化攻击。使得Web客户端用户在登录Web服务器时,能够有效保护Web客户端用户的隐私信息。
附图说明
图1示出了本发明实施例提供的Web页面的登录方法的步骤流程图;
图2示出了本发明实施例提供的Web页面的登录方法的详细步骤流程图;
图3示出了本发明实施例提供的Web页面的登录方法的具体应用流程图;
图4示出了本发明实施例提供的Web页面的登录装置与Web客户端、Web服务器交互的结构框图;
图5示出了本发明实施例提供的Web页面的登录装置的具体组成单元结构框图;
图6示出了本发明实施例提供的Web页面的登录装置的优选应用实例流程图。
具体实施方式
为使本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
用户在Web客户端输入网址访问某网站的页面时,Web客户端会发送Web页面访问请求至Web服务器,Web服务器接收Web页面访问请求后反馈应答消息给Web客户端,Web客户端接收应答消息后,该网站的静态Web页面将通过Web客户端进行展示,访问网站页面的步骤完成。接着用户需要在该静态Web页面输入个人账号信息(用户名和密码)以登录个人主页,此时Web客户端会发送Web页面登录请求至Web服务器,Web服务器接收Web页面登录请求后,进行身份验证,验证通过,则允许用户在该Web客户端上登录个人主页,至此,登录网站页面的步骤完成。
不管是Web页面访问请求还是Web页面登录请求,都会携带多种关键元素,例如:用户名、账号、手机号、Emal、用户密码等。如果不处理这些关键元素,就能轻易定位到这些关键元素,并能根据关键元素的名称推测其元素意义和用途。在用户使用Web客户端访问网站页面和登录网站页面时,如果根据获取到的关键元素编写脚本文件,则很容易迅速定位到页面输入框,获取用户的个人信息,如:用户名、手机号、Emal,再通过枚举常用密码库(统计互联网中的各类常用密码),完成撞库攻击或其他自动化攻击,最终登录用户主页,导致用户隐私泄露,甚至造成财产损失。
为保证Web页面登录过程中用户隐私的安全性,本申请一实施例如图1所示,提供了一种Web页面的登录方法,包括以下步骤:
步骤S1:获取Web客户端的第一指纹信息、Web客户端待登录的Web页面的信息和本次Web页面登录对应的时间,并根据Web客户端的第一指纹信息、Web页面的信息和时间计算动态关键值;
步骤S2:接收Web客户端的Web页面登录请求,Web页面登录请求携带动态关键值;
步骤S3:根据动态关键值解析出Web客户端的第二指纹信息;
步骤S4:将第二指纹信息发送至Web服务器,与Web服务器存储的第一指纹信息进行比对,两者一致时,Web页面登录成功。
本发明实施例提供的上述Web页面的登录方法能够在不影响登录页面显示的前提下,将关键元素处理为动态的、不断变化的;使得用户在登录个人账号时,关键元素无法被定位,从而防止关键元素这类敏感信息被脚本嗅探到,保护用户的隐私不被获取。
步骤S1中,Web客户端的第一指纹信息用于标识Web客户端的唯一性,通过第一指纹信息能够识别、定位和追踪是哪一台Web客户端发出的Web页面登录请求;Web客户端待登录的Web页面的信息包含了待登录的Web页面的各项关键元素,包括:待登录的Web页面的网址、待登录的Web页面的名称、待登录的Web页面的文本标记语言、待登录的Web页面的编程语言等。Web客户端每一次发送给Web服务器的Web页面登录请求的时间都是不同的,因此,Web页面登录对应的时间不是固定值,这使得根据Web客户端的第一指纹信息、Web页面的信息和时间计算得到的动态关键值是不断变化的,无法直接定位。
而在步骤S3中,由于Web服务器无法直接识别携带有动态关键值的Web页面登录请求,因此需要根据动态关键值解析出Web客户端的第二指纹信息,如果第二指纹信息与Web服务器存储的第一指纹信息相匹配,则该Web页面登录请求具有登录权限。
图2示出了本发明实施例提供的Web页面的登录方法的详细步骤流程图,请参看图2,以下对上述Web页面的登录方法进行详细说明。
步骤S11:接收Web客户端的Web页面访问请求。
具体的,Web页面访问请求中携带有Web客户端的第一指纹信息,第一指纹信息用于标识Web客户端的唯一性,可根据第一指纹信息识别、锁定或追踪Web客户端。即使更改Web客户端的各项参数,如:分辨率、字体、语言、插件等,第一指纹信息也保持不变;即使升级Web客户端,第一指纹信息也保持不变。因此,更改Web客户端的各项参数或升级Web客户端也无法实现Web客户端的伪造。
同时,当检测到Web服务器受到攻击时,可通过第一指纹信息快速定位到攻击的脚本是通过哪一个Web客户端发出的,以便于后续提供合适的处置措施。
本发明实施例中,是从Web页面访问请求中获取Web客户端的第一指纹信息,而Web页面访问请求是由Web客户端发出的,因此,在Web客户端中生成第一指纹信息,包括:
首先,从Web客户端的编码中随机获取一个字符串,将该字符串作为Web客户端的第一指纹信息,如果该字符串与Web客户端指纹库中现有的指纹信息重复,则重新获取字符串直至没有重复。
Web客户端的静态参数包括:canvas、Webgl、字体、插件等。基于Web客户端的静态参数生成三个不易变化的参数值:第一参数、第二参数和第三参数。
第一参数的生成包括:采用哈希算法计算所有的静态参数,得到一串哈希值,将这一串哈希值记为第一参数。第二参数的生成包括:在Web客户端的cookie(存储于网页中的缓存数据)中随机生成存储锚点值,将该存储锚点值计为第二参数。第三参数的生成包括:对静态参数中的canvas参数进行哈希运算,生成哈希值,将该哈希值记为第三参数。
将第一参数、第二参数、第三参数分别与第一指纹信息一一绑定,之后将Web客户端的静态参数、第一参数、第二参数、第三参数以及第一指纹信息均储存于Web服务器中,形成Web服务器存储参数列表N。
当用户使用某一Web客户端登录网站时,首先采集该Web客户端的各项参数,记为Web客户端参数列表A,再对Web客户端参数列表A和Web服务器存储参数列表N进行匹配。
如果Web客户端参数列表A和Web服务器存储参数列表N的匹配度高于预设阈值,则说明该Web客户端属于历史使用过的Web客户端。Web页面访问请求中携带的第一指纹信息即为Web服务器存储参数列表N中的第一指纹信息。
如果Web客户端参数列表A和Web服务器存储参数列表N的匹配度低于预设阈值,则说明该Web客户端对于Web服务器来说是一台新的设备。此时需要生成新的Web客户端的第一指纹信息和第一参数、第二参数和第三参数,最后将新的Web客户端的静态参数、第一参数、第二参数、第三参数以及第一指纹信息均储存于Web服务器中,得到Web服务器存储参数列表N+1。
步骤S12:识别Web页面访问请求是否为异常请求;如果Web页面访问请求为异常请求,则过滤Web页面访问请求;如果Web页面访问请求不是异常请求,则将Web页面访问请求转发给Web服务器,Web页面访问请求中包括Web客户端的第一指纹信息。
在该实施例中,Web页面访问请求中携带了Web客户端的第一指纹信息,因此转发给Web服务器的Web页面访问请求中包括了Web客户端的第一指纹信息,第一指纹信息存储于Web服务器中。
本实施例中,将使用机器脚本发送的批量虚假请求定义为异常请求。使用机器脚本操作的方法对Web服务器进行撞库攻击或其他自动化攻击,是指使用设计好的机器脚本单位时间内多次向Web服务器发送批量虚假请求,通过频繁试错的方法冒充用户登录用户个人账户,这种持续访问的方式不但会对用户隐私安全造成威胁,还会增加Web服务器的负载。
具体的,针对上述异常请求,本实施例提供的识别异常请求的方法包括:
具体的,Web客户端发出的Web页面访问请求中包括有Web客户端的各项参数,当使用web自动化工具selenium在web客户端执行脚本操作时,如果识别到的Web页面访问请求中Web客户端的“window.navigator.Webdriver”字段为true,则说明Web客户端在执行机器脚本操作。
或者,如果识别到Web页面访问请求中Web客户端的UserAgent中包含有headless字段,则说明Web客户端在执行机器脚本操作。
或者,识别Web页面访问请求中Web客户端的JS函数包中是否包含以下函数中的一种:window[‘callPhantome’]、window[‘_phantom’]、window[‘hp_identifier’]、window['__QTP__HOOK_NOTIFIER']、window['Entity']、window[‘netsparker,__ns,__nsAppendText,eoWebBrowser']window[‘spi_hooked,mozAnimationStartTime,mozIndexedDB,mozRequestAnimationFrame’]、window[‘shenjian']和window['QTP_EPE_HOOK']。如果包含,则说明Web客户端在执行机器脚本操作。
除了机器脚本发送的批量虚假请求为异常请求之外,本实施例的异常请求还包括以下请求中的一种:
单位时间内与同一Web客户端关联的IP个数与预设值不符、与同一Web客户端关联的IP黑名单个数与预设值不符、单位时间内同一Web客户端注册的账号个数与预设值不符、单位时间内同一Web客户端登录的账号个数与预设值不符、单位时间内同一账号登录的Web客户端个数与预设值不符、单位时间内同一IP注册账号的个数与预设值不符、单位时间内同一IP登录账号的个数与预设值不符。
具体的,单位时间内与同一Web客户端关联的IP个数是指:根据历史统计规则,一个用户单位时间内在Web客户端输入请求时,与Web客户端关联的IP个数只能为六个。黑产从业者在攻击Web服务器时,单位时间内会在两台以上的Web客户端输入请求,两台以上的Web客户端关联的IP个数依旧设定为六个时,此时Web服务器将认为他是正常的请求,会出现识别错误的情况。因此需要确定单位时间内与同一Web客户端关联的IP个数,避免出现Web服务器被混淆的情况出现。
与同一Web客户端关联的IP黑名单个数是指:如果一个IP频繁出错将会被列入IP黑名单中,当同一个Web客户端关联的IP黑名单个数超过预设值,将认定该Web客户端输入的请求为异常请求。
单位时间内同一Web客户端注册的账号个数是指:通常单位时间内同一Web客户端注册的账号个数是一个,如果超过一个,则说明黑产从业者通过其他非正式渠道在同一时间内注册多个账户,认定此时该Web客户端输入的请求为异常请求。
单位时间内同一Web客户端登录的账号个数是指:通常单位时间内同一Web客户端登录的账号个数是一个,如果超过一个,则说明黑产从业者通过其他非正式渠道在同一时间内登录多个账户,认定此时该Web客户端输入的请求为异常请求。
单位时间内同一账号登录的Web客户端个数是指:通常单位时间内同一账号登录的Web客户端为一个,如果超过一个,说明黑产从业者通过其他非正式渠道在同一时间把一个账号在多个不同的Web客户端登录,认定此时该Web客户端输入的请求为异常请求。
单位时间内同一IP注册账号的个数是指:通常单位时间内同一IP注册账号的个数为一个,如果超过一个,说明黑产从业者通过其他非正式渠道在同一时间在一个IP地址下注册多个账号,认定此时该Web客户端输入的请求为异常请求。
单位时间内同一IP登录账号的个数是指:通常单位时间内同一IP登录账号的个数为一个,如果超过一个,说明黑产从业者通过其他非正式渠道在同一时间在一个IP地址下登录多个账号,认定此时该Web客户端输入的请求为异常请求。
步骤S13:接收Web服务器针对Web页面访问请求返回的应答消息,从应答消息中获取Web客户端待登录的Web页面的信息,并记录接收应答消息的时间为本次Web页面登录对应的时间。
具体的,Web服务器接收到Web页面访问请求后,将给Web客户端反馈一个应答消息,该应答消息中包括待登录的Web页面的信息。Web页面的信息包括:待登录的Web页面的网址、待登录的Web页面的名称、待登录的Web页面的文本标记语言、待登录的Web页面的编程语言等。
本发明实施例的Web页面的登录方法主要包括:访问Web页面和登录Web页面。访问Web页面时,Web客户端需要向Web服务器发送Web页面访问请求,Web服务器接收Web页面访问请求后将会给Web客户端发送应答消息;登录Web页面时,Web客户端需要向Web服务器发送Web页面登录请求。
在一优选实施例中,在访问Web页面的阶段获取本次Web页面登录对应的时间,具体的,接收Web客户端向Web服务器发送的Web页面访问请求,将Web页面访问请求转发给Web服务器,再接收Web服务器针对Web页面访问请求返回的应答消息,将接收应答消息的时间记录为本次Web页面登录对应的时间。
本次Web页面登录对应的时间可以精确到毫秒。
步骤S14:对本次Web页面登录对应的时间与第一指纹信息进行MD5运算,生成动态的客户端关键值;对客户端关键值和Web页面的信息进行异或运算,生成动态关键值。
具体的,每次Web页面登录对应的时间都是不一致的,因此,每次登录时生成的动态的客户端关键值都不同,由客户端关键值和Web页面的信息进行异或运算得到的动态关键值也不同。这种动态转义的方法使得代表了用户隐私信息的关键元素都是不断变化的,无法直接被定位。定位到的也是被转义了的关键值,并非真实的关键元素。
异或运算可以包括二进制转换、位异或、base64运算等。
步骤S15:将携带动态关键值的应答消息返回给Web客户端,Web客户端的Web页面访问成功。
具体的,将应答消息返回给Web客户端后,Web客户端将对携带动态关键值的应答消息给与解析,最终将静态Web页面通过Web客户端进行展示。此时动态关键值是不断变化的,不具备可读性。
在一优选实施例中,将携带动态关键值的应答消息返回给Web客户端之前,还包括:对Web页面的文本语言和逻辑语言进行混淆。
具体的,Web页面的文本语言为HTML代码,Web页面的逻辑语言为JavaScript代码,在不改变原有代码语义、不影响Web页面显示和正确执行的前提下,将HTML代码和JavaScript代码中的各种元素,如:变量、函数、类的名字改写成无意义的名字,无法根据名字猜测其意义和用途,保护Web页面的信息不被轻易获取。
同时,在不影响Web页面展示的前提下,重新编排HTML代码和JavaScript代码的部分逻辑,如:将一行代码分散至多行进行排列。打乱Web页面代码的逻辑,无法通过分析代码的逻辑编写可以攻击的脚本。
对关键元素进行动态转义处理,得到变化的动态关键值的同时,又进行代码混淆处理,既无法获取关键元素,又混淆了页面代码的逻辑,进一步增加了机器脚本攻击的难度。
步骤S16:接收Web客户端的Web页面登录请求,Web页面登录请求携带有动态关键值。
具体的,Web客户端将动态关键值存储于Web客户端数据存储库中,当Web客户端向Web服务器发送Web页面登录请求时,将数据存储库中的动态关键值取出,填入Web页面登录请求中,使得Web页面登录请求中携带动态关键值。
因此,代理网关接收到的Web页面登录请求中携带有动态关键值。
步骤S17:识别Web页面登录请求是否为异常请求;如果Web页面登录请求为异常请求,过滤Web页面登录请求;如果Web页面登录请求不是异常请求,根据Web页面登录请求携带的动态关键值解析出Web客户端的第二指纹信息。
具体的,识别Web页面登录请求是否为异常请求的具体方法与上述识别Web页面访问请求是否为异常请求的方法相同,在此不再过多赘述。
接收到的Web客户端的Web页面登录请求携带有动态关键值,动态关键值已经过动态转义,Web服务器不能直接进行识别,因此需要对动态关键值进行解析,得到Web服务器能够识别的Web客户端的第二指纹信息。
步骤S18:将第二指纹信息发送至Web服务器,与Web服务器存储的第一指纹信息进行比对,两者一致时,Web页面登录成功。
将第二指纹信息发送至Web服务器,即代理网关将第二指纹信息携带在Web页面登录请求中发送给Web服务器。Web服务器收到Web页面登录请求后,从中解析出第二指纹信息。将第二指纹信息与Web服务器储存的第一指纹信息进行比对,两者一致时,Web页面登录成功;两者不一致,说明此次Web页面登录请求不具备登录权限,Web页面登录失败。
为进一步说明本发明实施例的Web页面的登录方法,以下通过图3以及具体的使用场景对Web页面的登录方法进行详细说明。
如图3所示,Web客户端与Web服务器之间通过代理网关进行交互,本发明实施例的Web页面的登录方法在代理网关中实现。
第一步:发送Web页面访问请求
Web客户端通过代理网关将Web页面访问请求发送给Web服务器。首先,Web客户端先生成能够标识Web客户端唯一性的第一指纹信息,将第一指纹信息录入Web页面访问请求;之后,Web客户端向代理网关发送携带第一指纹信息的Web页面访问请求。代理网关接收到Web页面访问请求后,对Web页面访问请求进行识别,将识别为异常的Web页面访问请求进行拦截,使其无法发送至Web服务器,实现抵御Web服务器攻击的目的。如果Web页面访问请求正常,则代理网关将Web页面访问请求转发给Web服务器,Web服务器接收Web页面访问请求,并将第一指纹信息存储于Web服务器中。
第二步:返回针对Web页面访问请求的应答消息
Web服务器接收到Web页面访问请求后,将针对Web页面访问请求返回应答消息给代理网关,应答消息中携带有待登录的Web页面的信息。代理网关接收应答消息的同时,记录返回应答消息的时间。对待登录的Web页面的信息、返回应答消息的时间和第一指纹信息进行处理,包括:对返回应答消息的时间和第一指纹信息进行MD5运算,生成动态的客户端关键值;再对客户端关键值和待登录的Web页面的信息进行异或运算,生成动态关键值。每次返回应答消息的时间都是不同的,因此最终生成的动态关键值不是一个固定值,不具备可读性。最后将该动态关键值录入应答消息中,将应答消息返回给Web客户端,Web客户端的Web页面访问成功。
第三步:发送Web页面登录请求
Web客户端的Web页面访问成功之后,用户就可以登录Web页面。先将动态关键值从应答消息中提取出来,储存于Web客户端中,在Web客户端向代理网关发送Web页面登录请求之前,将动态关键值录入Web页面登录请求中,使得Web页面登录请求携带有动态关键值。代理网关接收到Web页面登录请求后,对Web页面登录请求进行识别,将识别为异常的Web页面登录请求进行拦截,使其无法发送至Web服务器,实现抵御Web服务器攻击的目的。如果Web页面登录请求正常,则代理网关对Web页面登录请求中携带的动态关键值进行处理。
由于动态关键值不具备可读性,Web服务器无法直接识别,因此代理网关需要对动态关键值进行解析处理,包括:从动态关键值中解析出Web客户端的第一指纹信息和访问Web页面时得到的动态的客户端关键值,对第一指纹信息和动态的客户端关键值进行异或运算,得到第二指纹信息。
最后将第二指纹信息发送给Web服务器,对第二指纹信息与Web服务器中记载的第一指纹信息进行匹配,匹配成功,Web服务器允许登录,Web客户端的Web页面登录成功。匹配不成功,说明此次Web页面登录请求不具备登录权限,Web客户端的Web页面登录失败。
图4示出了本发明实施例提供的Web页面的登录装置与Web客户端、Web服务器交互的结构框图,请查看图4,本发明实施例还提供了一种Web页面的登录装置。
Web页面的登录装置分别与Web客户端、Web服务器通信连接,Web客户端通过Web页面的登录装置将Web页面访问请求和Web页面登录请求转发给Web服务器,同时Web服务器通过Web页面的登录装置将应答消息转发给Web客户端。
其中,Web页面的登录装置包括:动态关键值计算模块100、登录请求接收模块200、解析模块300和登录模块400。动态关键值计算模块100用于获取Web客户端的第一指纹信息、Web客户端待登录的Web页面的信息和本次Web页面登录对应的时间,并根据Web客户端的第一指纹信息、Web页面的信息和时间计算动态关键值。登录请求接收模块200用于接收Web客户端的Web页面登录请求,Web页面登录请求携带动态关键值。解析模块300用于根据动态关键值解析出Web客户端的第二指纹信息。登录模块400用于将第二指纹信息发送至Web服务器,与Web服务器存储的第一指纹信息进行比对,两者一致时,Web页面登录成功。
Web页面的登录装置、Web客户端和Web服务器中都包括:通信模块500,用于实现Web页面的登录装置、Web客户端和Web服务器之间的通信,以及各个子单元之间的数据通信。
Web客户端中还包括:第一指纹信息获取模块600,用于生成Web客户端的第一指纹信息,并将第一指纹信息发送给Web页面的登录装置的动态关键值计算模块100。
Web服务器中还包括:数据处理模块700,用于对Web页面访问请求进行处理并生成相应的应答消息。
图5示出了本发明实施例提供的Web页面的登录装置的具体组成单元结构框图,如图5所示,动态关键值计算模块100包括:访问请求接收单元101,用于接收Web客户端的Web页面访问请求。第一过滤单元102,用于识别Web页面访问请求是否为异常请求;如果Web页面访问请求为异常请求,则过滤Web页面访问请求;如果Web页面访问请求不是异常请求,则将Web页面访问请求发送给发送请求单元103,Web页面访问请求中包括Web客户端的第一指纹信息。发送请求单元103,用于将Web页面访问请求转发给Web服务器。Web页面信息和登录时间获取单元104,用于接收Web服务器针对Web页面访问请求返回的应答消息,从应答消息中获取Web客户端待登录的Web页面的信息,并记录接收应答消息的时间为本次Web页面登录对应的时间。客户端关键值计算单元105,用于对时间与第一指纹信息进行MD5运算,生成动态的客户端关键值。动态关键值计算单元106,用于对客户端关键值和Web页面的信息进行异或运算,生成动态关键值。应答消息发送单元107,用于将携带动态关键值的应答消息返回给Web客户端,Web客户端的Web页面访问成功。
登录请求接收模块200包括:登录请求接收单元201,用于接收Web客户端的Web页面登录请求,Web页面登录请求携带动态关键值。第二过滤单元202,用于识别Web页面登录请求是否为异常请求;如果Web页面登录请求为异常请求,过滤Web页面登录请求;如果Web页面登录请求不是异常请求,则将Web页面登录请求发送至解析模块300。
登录模块400包括:代码混淆单元401,用于对待登录的Web页面的文本语言和逻辑语言进行混淆;指纹比对单元402,用于将第二指纹信息发送至Web服务器,与Web服务器存储的第一指纹信息进行比对,两者一致时,Web页面登录成功。
为进一步说明本发明实施例的Web页面的登录装置,以下通过图6以及具体的使用场景对Web页面的登录装置进行详细说明。
如图6所示,用户或者编写的脚本文件都可以通过Web客户端向Web服务器发送Web页面访问请求或者Web页面登录请求。一般来说,通过编写的脚本文件向Web服务器发送Web页面访问请求或者Web页面登录请求,意味着是通过自动化脚本恶意攻击Web服务器,因此需要将通过脚本文件发送的Web页面访问请求或者Web页面登录请求进行拦截,以此抵御批量的恶意攻击。
拦截脚本文件发出的Web页面访问请求或者Web页面登录请求的方法包括:人机识别拦截;人机识别拦截能够识别Web页面访问请求或者Web页面登录请求是否由脚本文件发出,将脚本文件发出的Web页面访问请求或者Web页面登录请求进行拦截。
除了脚本文件发出的Web页面访问请求或者Web页面登录请求为异常请求,其他不符合预设规则的请求也属于异常请求,将此类异常请求通过预设规则拦截的方法进行拦截。预设规则拦截能够识别Web页面访问请求或者Web页面登录请求中的各项参数是否与预设值相符,将与预设值不符的Web页面访问请求或者Web页面登录请求拦截。
在Web页面访问请求发送之前,Web客户端先将能够标识Web客户端唯一性的第一指纹信息录入Web页面访问请求中,再将Web页面访问请求发送给Web页面的登录装置。Web页面的登录装置对Web页面访问请求进行识别,如果Web页面访问请求属于异常请求,Web页面的登录装置将会反馈给Web客户端访问失败的应答消息,访问Web页面失败。如果Web页面访问请求属于正常请求,Web页面的登录装置将Web页面访问请求反馈给Web服务器,Web服务器针对Web页面访问请求返回应答消息给Web页面的登录装置。
Web页面的登录装置对应答消息进行处理,包括:动态转义和代码混淆。动态转义是指将应答消息中携带的关键元素转换为不可读、不断变化的值,避免用户隐私被获取;动态转义包括:对返回应答消息的时间与第一指纹信息进行MD5运算,生成动态的客户端关键值;再对客户端关键值和Web页面的信息进行异或运算,生成动态关键值。
代码混淆是指混淆Web页面的代码逻辑,增加Web页面代码的阅读难度,进一步保护用户隐私。
Web页面的登录装置将携带有动态关键值的应答消息转发给Web客户端,Web客户端的Web页面成功展示。
Web页面成功展示之后,用户就可以输入账户名和密码,登录Web页面。此时,Web客户端先将动态关键值从应答消息中提取出来,储存于Web客户端中,当用户就可以输入账户名和密码,使得Web客户端向Web页面的登录装置发送Web页面登录请求时,将动态关键值录入Web页面登录请求中,使得Web页面登录请求携带有动态关键值。
由于动态关键值是经过动态转义的,Web服务器无法直接识别,因此Web页面的登录装置需要对动态关键值进行解析,包括:从动态关键值中解析出Web客户端的第一指纹信息和访问Web页面时得到的动态的客户端关键值,对第一指纹信息和动态的客户端关键值进行异或运算,得到第二指纹信息。
最后将携带第二指纹信息的Web页面登录请求发送给Web服务器,与Web服务器中存储的第一指纹信息进行匹配,匹配成功,Web服务器允许登录,Web客户端的Web页面登录成功。
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“Web页面的登录方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“Web页面的登录方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (9)

1.一种Web页面的登录方法,其特征在于,包括:
获取Web客户端的第一指纹信息、Web服务器发送的所述Web客户端待登录的Web页面的信息和本次Web页面登录对应的时间,并根据所述Web客户端的第一指纹信息、所述Web页面的信息和所述时间计算动态关键值;其中,所述动态关键值用于表征用户隐私信息对应的元素;所述第一指纹信息包括表征所述Web客户端的字符串;
接收Web客户端的Web页面登录请求,所述Web页面登录请求携带所述动态关键值;
根据所述动态关键值解析出所述Web客户端的第二指纹信息;
将所述第二指纹信息发送至所述Web服务器,与所述Web服务器存储的第一指纹信息进行比对,两者一致时,所述Web页面登录成功;
其中,所述根据所述Web客户端的第一指纹信息、所述Web页面的信息和所述时间计算动态关键值,包括:
对所述时间与所述第一指纹信息进行MD5运算,生成动态的客户端关键值;对所述客户端关键值和所述Web页面的信息进行异或运算,生成动态关键值。
2.根据权利要求1所述的Web页面的登录方法,其特征在于,所述获取Web客户端的第一指纹信息,包括:
接收所述Web客户端的Web页面访问请求,从所述Web页面访问请求中获取所述Web客户端的第一指纹信息。
3.根据权利要求2所述的Web页面的登录方法,其特征在于,该方法还包括:将所述Web页面访问请求转发给Web服务器;
所述获取所述Web客户端待登录的Web页面的信息和本次Web页面登录对应的时间,包括:
接收所述Web服务器针对所述Web页面访问请求返回的应答消息,从所述应答消息中获取所述Web客户端待登录的Web页面的信息,并记录接收所述应答消息的时间为本次Web页面登录对应的时间。
4.根据权利要求3所述的Web页面的登录方法,其特征在于,根据所述Web客户端的第一指纹信息、所述Web页面的信息和所述时间计算动态关键值之后,还包括:
将携带所述动态关键值的所述应答消息返回给所述Web客户端,所述Web客户端的Web页面访问成功。
5.根据权利要求3所述的Web页面的登录方法,其特征在于,接收所述Web客户端的Web页面访问请求之后,还包括:
识别所述Web页面访问请求是否为异常请求;
所述Web页面访问请求为异常请求,过滤所述Web页面访问请求;
所述Web页面访问请求不是异常请求,将所述Web页面访问请求转发给Web服务器,所述Web页面访问请求中包括所述Web客户端的第一指纹信息。
6.根据权利要求1所述的Web页面的登录方法,其特征在于,接收Web客户端的Web页面登录请求之后,还包括:
识别所述Web页面登录请求是否为异常请求;
所述Web页面登录请求为异常请求,过滤所述Web页面登录请求;
所述Web页面登录请求不是异常请求,根据所述Web页面登录请求携带的所述动态关键值解析出所述Web客户端的第二指纹信息。
7.一种Web页面的登录装置,其特征在于,包括:
动态关键值计算模块,用于获取Web客户端的第一指纹信息、Web服务器发送的所述Web客户端待登录的Web页面的信息和本次Web页面登录对应的时间,并根据所述Web客户端的第一指纹信息、所述Web页面的信息和所述时间计算动态关键值;其中,所述动态关键值用于表征用户隐私信息对应的元素;所述第一指纹信息包括表征所述Web客户端的字符串;
登录请求接收模块,用于接收Web客户端的Web页面登录请求,所述Web页面登录请求携带所述动态关键值;
解析模块,用于根据所述动态关键值解析出所述Web客户端的第二指纹信息;
登录模块,用于将所述第二指纹信息发送至Web服务器,与所述Web服务器存储的第一指纹信息进行比对,两者一致时,所述Web页面登录成功;
所述动态关键值计算模块,具体用于对所述时间与所述第一指纹信息进行MD5运算,生成动态的客户端关键值;对所述客户端关键值和所述Web页面的信息进行异或运算,生成动态关键值。
8.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-6任一项所述的Web页面的登录方法。
9.一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-6任一项所述的Web页面的登录方法。
CN202111040778.1A 2021-09-07 2021-09-07 一种Web页面的登录方法、装置、存储介质及电子设备 Active CN113496024B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111040778.1A CN113496024B (zh) 2021-09-07 2021-09-07 一种Web页面的登录方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111040778.1A CN113496024B (zh) 2021-09-07 2021-09-07 一种Web页面的登录方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN113496024A CN113496024A (zh) 2021-10-12
CN113496024B true CN113496024B (zh) 2021-12-10

Family

ID=77997045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111040778.1A Active CN113496024B (zh) 2021-09-07 2021-09-07 一种Web页面的登录方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113496024B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114884671B (zh) * 2022-04-21 2024-04-26 微位(深圳)网络科技有限公司 服务器的入侵防御方法、装置、设备及介质
CN115473684A (zh) * 2022-08-10 2022-12-13 重庆帮企科技集团有限公司 一种基于浏览器指纹辨别的反爬虫方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105378744A (zh) * 2013-05-03 2016-03-02 思杰系统有限公司 在企业系统中的用户和设备认证
CN110647733A (zh) * 2019-09-23 2020-01-03 江苏恒宝智能系统技术有限公司 一种基于指纹识别的身份认证方法和系统
CN112187709A (zh) * 2019-07-05 2021-01-05 华为技术有限公司 鉴权方法、设备及服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234697B2 (en) * 2008-03-31 2012-07-31 Intel Corporation Method, apparatus, and system for sending credentials securely

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105378744A (zh) * 2013-05-03 2016-03-02 思杰系统有限公司 在企业系统中的用户和设备认证
CN112187709A (zh) * 2019-07-05 2021-01-05 华为技术有限公司 鉴权方法、设备及服务器
CN110647733A (zh) * 2019-09-23 2020-01-03 江苏恒宝智能系统技术有限公司 一种基于指纹识别的身份认证方法和系统

Also Published As

Publication number Publication date
CN113496024A (zh) 2021-10-12

Similar Documents

Publication Publication Date Title
CN110881044B (zh) 一种计算机防火墙动态防御安全平台
Alwan et al. Detection and prevention of SQL injection attack: a survey
Gupta et al. XSS-secure as a service for the platforms of online social network-based multimedia web applications in cloud
CN107077410B (zh) 分析客户端应用行为以检测异常并且阻止访问
EP3295359B1 (en) Detection of sql injection attacks
US8347392B2 (en) Apparatus and method for analyzing and supplementing a program to provide security
EP3113064B1 (en) System and method for determining modified web pages
Abikoye et al. A novel technique to prevent SQL injection and cross-site scripting attacks using Knuth-Morris-Pratt string match algorithm
CN111478910B (zh) 用户身份验证方法和装置、电子设备以及存储介质
CN113496024B (zh) 一种Web页面的登录方法、装置、存储介质及电子设备
CN106998335B (zh) 一种漏洞检测方法、网关设备、浏览器及系统
CN112182614A (zh) 一种动态Web应用防护系统
Deng et al. Lexical analysis for the webshell attacks
Gupta et al. Evaluation and monitoring of XSS defensive solutions: a survey, open research issues and future directions
Kour et al. Tracing out cross site scripting vulnerabilities in modern scripts
Barhoom et al. A new server-side solution for detecting cross site scripting attack
CN107294994A (zh) 一种基于云平台的csrf防护方法和系统
CN114938313B (zh) 一种基于动态令牌的人机识别方法及装置
Sarjitus et al. Neutralizing SQL injection attack on web application using server side code modification
Bisht et al. Analyzing and Defending web application vulnerabilities through proposed security model in cloud computing
Usman et al. Building Secure Web-Applications Using Threat Model
CN113037724B (zh) 一种检测非法访问的方法及装置
Rawal et al. Cybersecurity snapshot: Google, twitter, and other online databases
Thakkar et al. Detection and Mitigation of Cross-site Scripting using NIDS
CN117040897A (zh) 重放攻击防御方法、装置、终端设备以及存储介质

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