CN108667799B - 一种针对浏览器缓存投毒的防御方法及*** - Google Patents
一种针对浏览器缓存投毒的防御方法及*** Download PDFInfo
- Publication number
- CN108667799B CN108667799B CN201810266046.6A CN201810266046A CN108667799B CN 108667799 B CN108667799 B CN 108667799B CN 201810266046 A CN201810266046 A CN 201810266046A CN 108667799 B CN108667799 B CN 108667799B
- Authority
- CN
- China
- Prior art keywords
- cache
- hash value
- module
- browser
- javascript
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000007123 defense Effects 0.000 title claims abstract description 19
- 231100000572 poisoning Toxicity 0.000 title claims abstract description 16
- 230000000607 poisoning effect Effects 0.000 title claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims abstract description 14
- 238000001514 detection method Methods 0.000 claims abstract description 5
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000012795 verification Methods 0.000 abstract description 17
- 230000002452 interceptive effect Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 22
- 241000700605 Viruses Species 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 7
- 239000000523 sample Substances 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000013515 script Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/145—Detection or countermeasures against cache poisoning
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提出的一种针对浏览器缓存投毒的防御方法,包括以下步骤:当通过检测发现浏览器向服务器发送请求页面,并调用本地的缓存控制关键函数时,拦截该缓存控制关键函数;根据缓存控制关键函数获取该请求页面中所有未缓存过期的JavaScript文件,并对JavaScript文件进行哈希值计算;根据计算结果校验JavaScript文件是否被篡改,如是,则将其缓存时间调整至早于当前时间。通过客户端和服务器的交互验证来实现,可以在不影响用户体验的同时,有效防御浏览器缓存投毒攻击,保护用户个人信息安全。同时提供实现上述方法的***。
Description
技术领域
本发明涉及计算机网络安全领域,用于对抗利用浏览器缓存机制实施的缓存投毒攻击,更具体地,是一种针对浏览器缓存投毒的检测方法及***。
背景技术
浏览器缓存投毒是指攻击者利用中间人等攻击手段将恶意JavaScript脚本植入到客户端浏览器缓存中,在缓存不被清除的前提下,用户每次访问网页,将会加载恶意JavaScript脚本,进而达到窃取用户账号密码、浏览记录,劫持、篡改流量等目的,严重威胁到用户个人信息安全。
浏览器缓存机制的设计初衷是让浏览器将一些静态资源(如:图片、CCS、JavaScript文件等)存储在本地,从而减少网络延迟,降低Web服务器的负载,提升用户体验。其主要实现方式是通过HTTP协议与服务器进行缓存资源的协商与校验,服务器可在HTTP响应头中设置Expires、Cache-Control属性的值来控制资源的有效时间,设置Last-Modified、Etag属性的值来判断资源的版本。在有效时间内,浏览器可以直接从本地缓存中获取该资源,而不需要再向服务器发送请求。然而,浏览器缓存机制也为攻击者提供了机会,通过中间人等手段,攻击者可以用恶意的JavaScript脚本替换原始资源,并设置长久的缓存时间,使得恶意JavaScript脚本能驻留在浏览器缓存之中。
JavaScript主要作为客户端脚本语言在客户端的浏览器上运行,能为网页添加各式各样的动态功能,增加交互性,为用户提供更流畅美观的浏览效果。随着浏览器技术的不断完善,以及Ajax、HTML5等Web技术的迅速发展,JavaScript得到了广泛应用,并可以调用许多***功能,比如操作本地文件、操作图片、调用摄像头和麦克风等等,甚至可以用来进行服务器端的开发(例如Node.js)。JavaScript脚本可以直接嵌入到HTML页面里,也可以通过外部引用的方式,将已存在的JavaScript脚本路径写入到页面,在访问页面的同时向服务器请求加载这些脚本资源。通常,为了提升服务器响应速度,这些外部引用的JavaScript脚本会在一定时效内缓存到本地。因此,当缓存的JavaScript脚本被攻击者替换为恶意代码,甚至实现了跨站点共享,并在每次访问网页的时候被加载执行时,用户的个人信息安全将变得荡然无存。
目前,浏览器缓存投毒的防御方法主要基于客户端和服务器。对于客户端来说,一方面,可以通过浏览器的相关设置来定时清除浏览器缓存;另一方面,如果同一网页进行再次访问时,可以进行刷新或者强制刷新。当客户端进行F5刷新时,缓存有效时间将不再生效,服务器会重新验证资源的完整性,并判断是否需要重新加载资源;当客户端进行强制刷新时,浏览器不会使用缓存资源,而会向服务器重新请求资源。基于客户端的防御方法需要用户具有较高的安全意识,并且影响到用户体验。对于服务器来说,可以采取隔离缓存文件、URL随机化的方法,来防止客户端直接从缓存中读取页面信息,但这又势必会影响到响应速度,违背了浏览器缓存的初衷。现有的防御方法都不同程度的存在问题,尤其是无法在保护用户个人信息的同时,兼顾用户体验。
发明内容
为解决上述问题,本发明提出的一种针对浏览器缓存投毒的防御方法及***,通过客户端和服务器的交互验证来实现,可以在不影响用户体验的同时,有效防御浏览器缓存投毒攻击,保护用户个人信息安全。
为达到上述目的,本发明采用具体技术方案是:
一种针对浏览器缓存投毒的防御方法,包括以下步骤:
当通过检测发现浏览器向服务器发送请求页面,并调用本地的缓存控制关键函数时,拦截该缓存控制关键函数;
根据缓存控制关键函数获取该请求页面中所有未缓存过期的JavaScript文件,并对JavaScript文件进行哈希值计算;根据计算结果校验JavaScript文件是否被篡改,如是,则将其缓存时间调整至早于当前时间。
进一步地,根据计算结果校验JavaScript文件是否被篡改包括:
将JavaScript文件名与其哈希值组成的JSON数据;
查找与JavaScript文件名对应的存储在本地的哈希值,将JSON数据中的哈希值与本地的哈希值进行比对,并生成校验值对,表示文件是否被篡改。
进一步地,所述哈希值计算选用常用Hash算法,比如MD5、SHA等,但不限于此。
进一步地,如JSON数据中的哈希值与本地的哈希值不一致,则生成{“文件名”:“Fail”}校验值对;若两者一致,则生成{“文件名”:“Success”}。
一种针对浏览器缓存投毒的防御***,包括:
部署在客户端浏览器上的Hook模块,散列值生成模块及缓存更新模块;用以实现客户端与服务器数据传输的数据传输模块,部署在服务器上缓存校验模块;其中,
所述Hook模块用以当通过检测发现浏览器向服务器发送请求页面,并调用本地的缓存控制关键函数时,拦截该缓存控制关键函数;
所述散列值生成模块用以根据缓存控制关键函数获取该请求页面中所有未缓存过期的JavaScript文件,并对JavaScript文件进行哈希值计算;
所述缓存校验模块根据计算结果校验JavaScript文件是否被篡改;
如文件被篡改,所述缓存更新模块用以将JavaScript文件的缓存时间调整至早于当前时间。
进一步地,所述缓存校验模块根据计算结果校验JavaScript文件是否被篡改包括:
将JavaScript文件名与其哈希值组成的JSON数据;
查找与JavaScript文件名对应的存储在本地的哈希值,将JSON数据中的哈希值与本地的哈希值进行比对,并生成校验值对,表示文件是否被篡改。
进一步地,如JSON数据中的哈希值与本地的哈希值不一致,则所述缓存校验模块生成并向服务器发送{“文件名”:“Fail”}校验值对;若两者一致,则所述缓存校验模块生成并向服务器发送{“文件名”:“Success”}。
进一步地,所述散列值生成模块进行哈希值计算选用常用Hash算法,比如MD5、SHA等,但不限于此。
通过采取上述技术方案,与现有技术相比,本发明具有以下几点优势:
首先,缓存校验过程中使用哈希值校验所消耗的时间单位为ms级,在网络环境良好的情况下,缓存校验过程不会让客户端察觉,可以在不影响客户端体验的同时,有效的防御浏览器缓存投毒攻击。
并且,利用文件哈希值,能够快速并可靠的验证缓存文件的真实性。
综上,本发明通过采用了客户端与服务器交互验证的方法,通过计算并比对缓存文件哈希值来判断缓存文件的真实性,同时根据校验结果,对可疑缓存文件进行强制刷新,从而保护客户端的个人信息安全。
附图说明
图1是本发明一实施例中针对浏览器缓存投毒防御***的总括流程示意图。
图2是本发明一实施例中缓存探针构成示意图。
图3是本发明一实施例中缓存校验插件构成示意图。
图4是本发明一实施例中***建立和总括流程图。
图5是本发明一实施例中散列值生成模块示意图。
图6是本发明一实施例中缓存校验模块示意图。
图7是本发明一实施例中缓存更新模块示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的目的、特征和优点能够更加明显易懂,下面结合附图和事例对本发明中技术核心作进一步详细的说明。
在本发明中,设计了一套可靠而有效的浏览器缓存投毒防御***,能够有效解决上述所存在的问题,所述***包括如下:
如图1所示,针对浏览器缓存投毒防御***的总括流程示意图。***分为客户端与服务器两个部分,对于客户端,需要在浏览器中嵌入缓存探针;对于服务器,需要在服务器中安装缓存校验插件。当客户端在客户端使用浏览器访问网页时,缓存探针开始工作,与服务器进行缓存校验,校验完毕后,浏览器开始加载、解析并渲染页面。
如图2所示,缓存探针包括Hook(钩子)模块、校验值生成模块、数据传输模块、缓存更新模块。
如图3所示,缓存校验插件包括缓存校验模块、数据传输模块。
其中,在客户端和服务器分别部署的数据传输模块用以数据传输,应视为一个整体的通讯***。
如图4所示,浏览器缓存投毒防御***建立和总括流程图,包括:
步骤100,当客户端通过浏览器访问页面时,例如访问example.com,浏览器发出请求后,将通过缓存控制关键函数来获取该页面的缓存文件。此时,若检测到浏览器调用缓存控制关键函数时,则挂载Hook模块拦截该行为,并拦截该缓存控制关键函数,使其暂不执行,首先通过后续的步骤进行验证。
步骤200,缓存探针读取浏览器缓存列表,通过缓存控制关键函数来获取该页面的缓存文件,进而获取该页面缓存时间未过期的JavaScript文件,例如example.com页面中含有缓存未过期文件a.js和b.js,调用散列值生成模块中MD5生成函数,计算缓存文件的哈希值,该哈希值具有唯一性,长度为32位,可用来标识文件。即:
MD5(a.js)=95f0a310f289230d56c3a4949c17963e
MD5(b.js)=656ad21ad877025a82411b49aa0f8b88
将JavaScript文件名与对应的哈希值组成为JSON格式的数值对:
{“a.js”:“95f0a310f289230d56c3a4949c17963e”
“b.js”:“656ad21ad877025a82411b49aa0f8b88”
}
也可以理解为将JavaScript文件名与该文件的哈希值组成的JSON(JavaScriptObject Notation JS对象标记)数据发送到服务器。其中,采用的MD5算法是公知的,此例中可封装成函数放在散列值生成模块中,直接调用即可。
步骤300,客户端的数据传输模块将步骤200中生成的数值对传送到服务器,服务器接收该数值对。
步骤400,服务器中缓存校验模块根据获取的数值对中的文件名,读取该文件名在服务器存储的哈希值,并与数值对中的哈希值进行比对。如果不一致,则标记校验结果为“Fail”,否则,标记校验结果为“Success”。将文件名与对应的校验结果组成为JSON格式的校验值对:
{“a.js”:“Fail”
“b.js”:“Success”
}
步骤500,服务器的数据传输模块将步骤400中生成的校验值对传送到客户端,客户端端接收该校验值对。
步骤600,客户端中缓存更新模块接收到校验值对,获取客户端***当前时间,将标记为“Fail”的缓存文件缓存过期时间(缓存过期时间一般在缓存响应头Expires字段中)修改为客户端当前时间的前一天。如果为Success,则不做处理。当处理完所有校验值后,释放Hook模块,停止拦截,浏览器可以正常调用函数,加载页面。缓存更新模块根据接收的校验值对来决定是否更新缓存时间。
如图5所示,散列值生成模块示意图,包括:
步骤210,读取JavaScript缓存文件的缓存过期时间。一般来说,在网页被第一次访问时,HTTP响应头中会规定该文件的缓存过期时间,主要是Expires策略和Cache-Control策略。Expires是响应消息头字段,记录的是缓存文件过期时间。Cache-Control与Expires的作用一致,都是指明当前资源的有效期,但Cache-Control的选择更多,设置更细致,如果同时设置的话,其优先级高于Expires。Cache-Control中的max-age值指该缓存文件的生存期不大于指定时间(以秒为单位),需要与Date字段配合,计算出缓存过期时间,Date字段存储了本次请求的时间,则缓存过期时间Expires=Date+max-age。缓存文件的响应头会在第一次访问时存储到本地,本发明在读取缓存过期时间时,需严格遵守HTTP协议定义的缓存机制。
根据浏览器缓存机制,若文件的缓存时间未过期,则直接使用缓存,而不再向服务器发送请求,这就使得恶意JavaScript文件有了可执行的条件。因此,可以通过文件的哈希值来进行文件完整性校验。文件的哈希值是通过Hash函数计算得到,不管文件长度如何,它的Hash函数计算结果是一个固定长度的数字。与加密算法不同,Hash算法是一个不可逆的单向函数。采用安全性高的Hash算法,如MD5、SHA时,两个不同的文件几乎不可能得到相同的Hash结果。因此,一旦文件被篡改,就可检测出来。本***使用MD5算法,它是目前被大量广泛使用的散列算法之一,主要用于密码加密和文件校验等。也可采用其他Hash算法,例如SHA-1、SHA-256、SHA-512等。
步骤220,获取当前客户端时间,并与缓存过期时间比较,判断缓存文件是否过期。
步骤230,缓存文件未过期,则利用MD5生成函数,逐一对缓存文件进行哈希值计算。例:MD5(a.js)=95f0a310f289230d56c3a4949c17963e。
步骤240,将所有未过期的缓存文件名及其哈希值,组合成JSON格式的数值对。例:
{“a.js”:“95f0a310f289230d56c3a4949c17963e”
“b.js”:“656ad21ad877025a82411b49aa0f8b88”
}。
步骤250,将JSON数据传递到数据传输模块。
如图6所示,缓存校验模块示意图,起部署于服务器,用以校验JavaScript文件的真实性。缓存校验模块在接受到来自客户端的数值对时,将读取对应文件存储在本地的哈希值,通过比对两个哈希数值,来判断该文件是否被篡改。如果两值不一致,说明该文件不可信,很可能被攻击者篡改,标记校验结果为“Fail”。如果一致,则标记校验结果为“Success”。校验过程具体包括:
步骤410,获取到客户端传输的数值对。
步骤420,解析数值对,并获取缓存文件名,根据缓存文件名,查找本地存储的对应文件名的哈希值。
步骤430,解析数值对,获取缓存文件名对应的哈希值,并与本地存储的哈希值进行比对。
步骤440,如果两个值相同,则生成JSON格式的校验值对:{“文件名”:“Success”};如果两个值不相同则生成JSON格式的校验值对:{“文件名”:“Fail”};
步骤450,将所有的未过期缓存文件逐一进行校验,最终形成一组校验值对,并传递到数据传输模块。
如图7所示,缓存更新模块示意图,部署在客户端浏览器上,用以更改JavaScript文件的缓存时间,使其在浏览器加载页面时重新向服务器发送请求。具体包括:
步骤510,获取服务器传输的校验值对。
步骤520,解析校验值对,判断文件校验值为“Success”,还是“Fail”。
步骤530,若文件校验值为“Fail”,则修改缓存文件过期时间。修改规则为替换缓存过期时间为当前客户端时间的前一天。例:Expires:Wed,19Dec 2018 08:12:43GMT,当前时间为Wed,19January 2018 08:12:00GMT,则修改后为Expires:Wed,18January 2018 08:12:00GMT。
步骤540,浏览器开始加载、解析、渲染页面。
上述示例中,是将校验失败的文件的缓存时间修改为例如客户端当前时间的前一天,当浏览器解析页面时,会判定该文件的缓存时间已过期,从而达到向服务器强制发送请求的目的。当然,修改的时间是可调的,只要将缓存时间改为早于当前时间即可实现技术目的。
针对上述实施例描述的方案,进行实验比较如下:
客户端使用浏览器Chrome 64.0.3282.186版本,服务器使用Apache2.0版本,部署域名为www.arkteam.net的网站。在没有使用任何缓存投毒防御模块下,连续访问网站www.arkteam.net,网页加载所需时间开销为847ms。然后对页面进行强制刷新Ctrl+F5,即不使用任何缓存文件,页面所有资源重新向服务器请求,则网页加载所需时间开销为2.24s。使用本方法,在客户端和服务器加入缓存投毒防御模块,再次访问,则网页加载所需时间开销为2.30s。通过强制刷新,可以在不使用缓存技术的情况下避免缓存投毒,但该方法需要客户端的配合,有意识的对页面进行强制刷新,客户端体验感较差。相对于现有技术而言,上述实施例描述的方案所提供的方法可以在无需客户端配合下,完成缓存文件的检验,同时页面加载的时间开销可以保证在可接受范围内,兼顾正常浏览和客户端体验,具有很大的优势。
最后所应说明的是,以上实施案例仅用以说明本发明的技术方案而非限制,尽管使用事例对本发明进行了详细说明,本领域的普通技术人员应当理解,可对本发明的技术方案进行修改或者等价替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (8)
1.一种针对浏览器缓存投毒的防御方法,包括以下步骤:
当通过检测发现浏览器向服务器发送请求页面,并调用本地的缓存控制关键函数时,拦截该缓存控制关键函数;
根据缓存控制关键函数获取该请求页面中所有未缓存过期的JavaScript文件,并对JavaScript文件进行哈希值计算;根据计算结果校验JavaScript文件是否被篡改,如是,则将JavaScript文件的缓存过期时间调整至早于当前时间。
2.如权利要求1所述的针对浏览器缓存投毒的防御方法,其特征在于,根据计算结果校验JavaScript文件是否被篡改包括:
将JavaScript文件名与其哈希值组成的JSON数据;
查找与JavaScript文件名对应的存储在本地的哈希值,将JSON数据中的哈希值与本地的哈希值进行比对,并生成校验值对,表示文件是否被篡改。
3.如权利要求1所述的针对浏览器缓存投毒的防御方法,其特征在于,所述哈希值计算选用算法为MD5算法或SHA算法。
4.如权利要求1所述的针对浏览器缓存投毒的防御方法,其特征在于,如JSON数据中的哈希值与本地的哈希值不一致,则生成{“文件名”:“Fail”}校验值对;若两者一致,则生成{“文件名”:“Success”}。
5.一种针对浏览器缓存投毒的防御***,包括:
部署在客户端浏览器上的Hook模块,散列值生成模块及缓存更新模块;用以实现客户端与服务器数据传输的数据传输模块,部署在服务器上缓存校验模块;其中,
所述Hook模块用以当通过检测发现浏览器向服务器发送请求页面,并调用本地的缓存控制关键函数时,拦截该缓存控制关键函数;
所述散列值生成模块用以根据缓存控制关键函数获取该请求页面中所有未缓存过期的JavaScript文件,并对JavaScript文件进行哈希值计算;
所述缓存校验模块根据计算结果校验JavaScript文件是否被篡改;
如文件被篡改,所述缓存更新模块用以将JavaScript文件的缓存过期时间调整至早于当前时间。
6.如权利要求5所述的针对浏览器缓存投毒的防御***,其特征在于,所述缓存校验模块根据计算结果校验JavaScript文件是否被篡改包括:
将JavaScript文件名与其哈希值组成的JSON数据;
查找与JavaScript文件名对应的存储在本地的哈希值,将JSON数据中的哈希值与本地的哈希值进行比对,并生成校验值对,表示文件是否被篡改。
7.如权利要求5所述的针对浏览器缓存投毒的防御***,其特征在于,如JSON数据中的哈希值与本地的哈希值不一致,则所述缓存校验模块生成并向服务器发送{“文件名”:“Fail”}校验值对;若两者一致,则所述缓存校验模块生成并向服务器发送{“文件名”:“Success”}。
8.如权利要求5所述的针对浏览器缓存投毒的防御***,其特征在于,所述散列值生成模块进行哈希值计算选用算法为MD5算法或SHA算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810266046.6A CN108667799B (zh) | 2018-03-28 | 2018-03-28 | 一种针对浏览器缓存投毒的防御方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810266046.6A CN108667799B (zh) | 2018-03-28 | 2018-03-28 | 一种针对浏览器缓存投毒的防御方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108667799A CN108667799A (zh) | 2018-10-16 |
CN108667799B true CN108667799B (zh) | 2021-01-15 |
Family
ID=63782636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810266046.6A Active CN108667799B (zh) | 2018-03-28 | 2018-03-28 | 一种针对浏览器缓存投毒的防御方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108667799B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582907B (zh) * | 2018-12-06 | 2023-03-07 | 深圳前海微众银行股份有限公司 | 网页资源完整性的校验方法、装置、设备及可读存储介质 |
CN109740386B (zh) * | 2018-12-25 | 2020-12-08 | 星潮闪耀移动网络科技(中国)有限公司 | 一种静态资源文件的检测方法及装置 |
US11824840B1 (en) * | 2019-02-04 | 2023-11-21 | Meixler Technologies, Inc. | System and method for web-browser based end-to-end encrypted messaging and for securely implementing cryptography using client-side scripting in a web browser |
CN111078309A (zh) * | 2019-11-04 | 2020-04-28 | 珠海西山居移动游戏科技有限公司 | 一种获取Unity3D资源引用关系的方法及*** |
CN112434292B (zh) * | 2020-10-18 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种Web缓存投毒防护的方法和设备 |
CN113852643B (zh) * | 2021-10-21 | 2023-11-14 | 西安电子科技大学 | 基于内容流行度的内容分发网络缓存污染防御方法 |
CN113987477B (zh) * | 2021-10-26 | 2024-07-19 | 北京京航计算通讯研究所 | 一种分布式ai***的防投毒方法和*** |
CN114301607B (zh) * | 2021-12-30 | 2024-02-06 | 山石网科通信技术股份有限公司 | 浏览器的证书清除方法、装置、存储介质及处理器 |
CN115174164A (zh) * | 2022-06-21 | 2022-10-11 | 南京赛宁信息技术有限公司 | 基于浏览器缓存的防页面篡改方法、***与设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118033A (zh) * | 2013-03-04 | 2013-05-22 | 星云融创(北京)信息技术有限公司 | 一种防御用户网站被篡改的方法及装置 |
CN103747005A (zh) * | 2014-01-17 | 2014-04-23 | 山石网科通信技术有限公司 | Dns缓存投毒的防护方法和设备 |
JP2014229937A (ja) * | 2013-05-17 | 2014-12-08 | 西日本電信電話株式会社 | Dnsキャッシュポイズニング判定装置、dnsキャッシュポイズニング判定方法、及びdnsキャッシュポイズニング判定プログラム |
CN105827599A (zh) * | 2016-03-11 | 2016-08-03 | 中国互联网络信息中心 | 一种基于dns报文深度解析的缓存中毒检测方法及装置 |
CN105939337A (zh) * | 2016-03-09 | 2016-09-14 | 杭州迪普科技有限公司 | Dns缓存投毒的防护方法及装置 |
CN106126356A (zh) * | 2016-06-24 | 2016-11-16 | 努比亚技术有限公司 | 一种服务器缓存的实现、生成方法及*** |
US9882921B1 (en) * | 2014-01-03 | 2018-01-30 | Juniper Networks, Inc. | Systems and methods for detecting cache-poisoning attacks in networks using service discovery protocols |
-
2018
- 2018-03-28 CN CN201810266046.6A patent/CN108667799B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118033A (zh) * | 2013-03-04 | 2013-05-22 | 星云融创(北京)信息技术有限公司 | 一种防御用户网站被篡改的方法及装置 |
JP2014229937A (ja) * | 2013-05-17 | 2014-12-08 | 西日本電信電話株式会社 | Dnsキャッシュポイズニング判定装置、dnsキャッシュポイズニング判定方法、及びdnsキャッシュポイズニング判定プログラム |
US9882921B1 (en) * | 2014-01-03 | 2018-01-30 | Juniper Networks, Inc. | Systems and methods for detecting cache-poisoning attacks in networks using service discovery protocols |
CN103747005A (zh) * | 2014-01-17 | 2014-04-23 | 山石网科通信技术有限公司 | Dns缓存投毒的防护方法和设备 |
CN105939337A (zh) * | 2016-03-09 | 2016-09-14 | 杭州迪普科技有限公司 | Dns缓存投毒的防护方法及装置 |
CN105827599A (zh) * | 2016-03-11 | 2016-08-03 | 中国互联网络信息中心 | 一种基于dns报文深度解析的缓存中毒检测方法及装置 |
CN106126356A (zh) * | 2016-06-24 | 2016-11-16 | 努比亚技术有限公司 | 一种服务器缓存的实现、生成方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN108667799A (zh) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108667799B (zh) | 一种针对浏览器缓存投毒的防御方法及*** | |
US9112828B2 (en) | Method for defending against session hijacking attacks and firewall | |
US8561181B1 (en) | Detecting man-in-the-middle attacks via security transitions | |
US7861087B2 (en) | Systems and methods for state signing of internet resources | |
US10270792B1 (en) | Methods for detecting malicious smart bots to improve network security and devices thereof | |
CN111935169A (zh) | 一种业务数据访问方法、装置、设备及存储介质 | |
Tang et al. | Fortifying web-based applications automatically | |
US20060288220A1 (en) | In-line website securing system with HTML processor and link verification | |
US20140173730A1 (en) | Security Method and Apparatus | |
KR20140113705A (ko) | 웹 호스트에 의해 제공된 웹 콘텐츠의 진본성을 보장하기 위한 방법, 디바이스, 시스템 및 컴퓨터 판독가능 저장 매체 | |
CN108259619B (zh) | 网络请求防护方法及网络通信*** | |
JP2016524261A (ja) | データ処理ネットワーク内のプロキシ・サーバにおいてセキュリティの侵害が検出されることに応じてアラートを生成するためのネットワーク・セキュリティ・システム、方法、およびコンピュータ・プログラム | |
US20140137189A1 (en) | Cross-site request forgery protection | |
CN109361574B (zh) | 基于JavaScript脚本的NAT检测方法、***、介质和设备 | |
Singh et al. | Practical end-to-end web content integrity | |
WO2023045196A1 (zh) | 访问请求捕获方法、装置、计算机设备和存储介质 | |
CN117155716B (zh) | 访问校验方法和装置、存储介质及电子设备 | |
US8650214B1 (en) | Dynamic frame buster injection | |
US10757118B2 (en) | Method of aiding the detection of infection of a terminal by malware | |
CN109886011B (zh) | 一种安全防护方法和装置 | |
Lalia et al. | Implementation of web browser extension for mitigating CSRF attack | |
US20220263828A1 (en) | Client-side blocking and reporting of unauthorized network transmissions | |
Lim et al. | Ensuring web integrity through content delivery networks | |
Riesch et al. | Audit based privacy preservation for the OpenID authentication protocol | |
CN112637171A (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 |