CN105072109A - 防止跨站脚本攻击的方法及系统 - Google Patents

防止跨站脚本攻击的方法及系统 Download PDF

Info

Publication number
CN105072109A
CN105072109A CN201510475924.1A CN201510475924A CN105072109A CN 105072109 A CN105072109 A CN 105072109A CN 201510475924 A CN201510475924 A CN 201510475924A CN 105072109 A CN105072109 A CN 105072109A
Authority
CN
China
Prior art keywords
parameter
url
request
module
injection
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
Application number
CN201510475924.1A
Other languages
English (en)
Other versions
CN105072109B (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.)
Fujian TQ Digital Co Ltd
Original Assignee
Fujian TQ Digital 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 Fujian TQ Digital Co Ltd filed Critical Fujian TQ Digital Co Ltd
Priority to CN201510475924.1A priority Critical patent/CN105072109B/zh
Publication of CN105072109A publication Critical patent/CN105072109A/zh
Application granted granted Critical
Publication of CN105072109B publication Critical patent/CN105072109B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种防止跨站脚本攻击的方法及系统,其中方法包括:使用注入检测模块检测站点,生成需要防御的接口URL参数;解析所述接口URL参数,提取参数名称,生成URL摘要集合;解析域名到注入防御模块;获取攻击者对注入防御模块的注入请求;注入防御模块判断所述注入请求的地址是否在所述URL摘要集合中;若是,则注入防御模块替换所述URL参数的参数值及相关关键字,获得安全请求;发送所述安全请求到目标服务器WEB站点上。通过上述方式,本发明能够降低对程序员的要求,提高网站的安全性,无需对源代码进行修改,即可自动对站点进行防御。

Description

防止跨站脚本攻击的方法及系统
技术领域
本发明涉及一种防止跨站脚本攻击的方法及系统。
背景技术
所谓跨站脚本攻击(CrossSiteScripting),为不和层叠样式表(CascadingStyleSheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。
XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(sameoriginpolicy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击”,而JavaScript是新型的“ShellCode”。
目前许多网站有发现存在跨站脚本攻击(XSS)注入的漏洞,在没有源码的情况下可能无法对其漏洞进行修改,有源码情况下,则可能需要手动对每个接口进行修改,操作极其不方便,且对程序员的专业水平要求较高。
现有专利(申请号:201110207882.5)公开了一种基于网络加速设备的安全防御系统,对购买网络加速服务的各类网站站点进行有效防护。其技术方案为:系统包括系统规则库模块、系统决策模块、系统入侵检测模块以及系统反馈模块,其中系统规则库模块,初始化针对web攻击的规则库文件;系统决策模块对安全检测所需的决策算法进行注册;系统入侵检测模块接收来自web应用程序客户端的请求,根据所述系统决策模块中的决策算法对请求进行内容检测和验证,确保请求的安全性,将检测结果传输给所述系统反馈模块;系统反馈模块对于符合安全性的请求,让请求直接进入安全防御之后的流程,对于不符合安全性的请求,采取相应的防御措施。而该专利中对接口不进行注入检测,防御的准确性不足。
发明内容
本发明所要解决的技术问题是:通过对跨站脚本攻击注入请求进行分析、替换处理,防止跨站脚本攻击注入到系统中。
为了解决上述技术问题,本发明采用的技术方案为:提供一种防止跨站脚本攻击的方法,包括:
使用注入检测模块检测站点,生成需要防御的接口URL参数;
解析所述接口的URL参数,提取参数名称,生成URL摘要集合;
解析域名到注入防御模块;
获取攻击者对注入防御模块的注入请求;
注入防御模块判断所述注入请求的地址是否在所述URL摘要集合中;
若是,则注入防御模块替换所述URL参数的参数值及相关关键字,获得安全请求;
发送所述安全请求到目标服务器WEB站点上。
为解决上述问题,本发明还提供一种防止跨站脚本攻击注入的系统,包括目标服务器,还包括:
注入检测模块,用于对站点进行检测;
URL参数模块,用于使用注入检测模块检测站点,生成接口的URL参数;
解析提取模块,用于解析所述接口的URL参数,提取参数名称,生成URL摘要集合;
域名解析模块,用于解析域名到注入防御模块;
攻击获取模块,用于获取攻击者对注入防御模块的注入请求;
注入防御模块,用于判断所述注入请求的地址是否在所述URL摘要集合中;
注入防御模块还用于替换所述URL参数的参数值及相关关键字,获得安全请求;
发送模块,用于发送所述安全请求到目标服务器WEB站点上。
本发明的有益效果在于:区别于现有技术,通过对跨站脚本攻击进行分析、替换处理,防止跨站脚本攻击注入到系统中,本发明可以降低对程序员的要求,提高网站的安全性,无需对源代码进行修改,即可自动对站点进行防御。
附图说明
图1为本发明方法实施例一的流程示意图;
图2为本发明方法实施例二的流程示意图;
图3为本发明系统实施例三的结构框图;
图4为本发明系统实施例四的结构框图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:建立需要防御的接口URL摘要集合,对上述接口的注入请求进行分析,替换参数,防止跨站脚本攻击注入到系统中。
请参照图1,本发明实施例一提供一种防止跨站脚本攻击的方法,包括如下步骤:
S1:使用注入检测模块检测站点,生成需要防御的接口URL参数;
S2:解析所述接口URL参数,提取参数名称,生成URL摘要集合;
S3:解析域名到注入防御模块;
S4:获取攻击者对注入防御模块的注入请求;
S5:注入防御模块判断所述注入请求的地址是否在所述URL摘要集合中;
若是,则执行步骤S6:注入防御模块替换所述URL参数的参数值及相关关键字,获得安全请求;
S7:发送所述安全请求到目标服务器WEB站点上。
如图2所示,在实施例一的基础上,本发明实施例二步骤S2具体为:
S21:解析所述接口的URL参数,剔除参数值;
S22:生成仅包含参数名称的URL摘要集合。
其中,步骤S6之后,还包括:
若否,则执行步骤S60:注入防御模块确认所述请求为安全请求;并执行步骤S7。
其中,S6步骤具体为:
S61:替换所有所述参数值;
S62:根据脚本替换规则库,采用正则表达式替换相关关键字;
S63:生成安全请求。
在一个具体的实施例中,可在进行防御前,预先作如下准备:
通过站点访问日志,对其参数进行解析,分组出接口地址和参数。对分组出来的接口地址进行xss注入测试,测试出其中存在xss漏洞的接口,将其保存下来。具体的,可以使用注入检测模块对站点进行XSS注入,以检测站点是否需要防御,对于需要防御的接口,生成接口URL参数,其中参数包括参数名称和对应的参数值。参数用于传递不同的内容,可以包含各种内容,根据系统实际情况而定,可以是一个数值,文本,文件或其他数据。例如:数值和文本可以使用Geturl传递,即Gethttp://abc.com/?id=1中的id是参数名,1是参数值。文件和其他数据可以采用post方式传递,将文件或者数据写在http请求主体中。
通过程序对记录下来的存在注入漏洞的请求参数进行解析,将存在注入的参数名称提取出,以生成URL摘要集合。其中参数名称是请求的一部分,并与参数值对应。
例如:请求http://abc.com/?id=1&name=abc中,其参数名称为id和name,对应的参数值为1和abc;优选地,将该请求中的参数值剔除,生成仅包含参数名称的URL摘要集合,即http://abc.com/?id=&name=,URL摘要集合是指所有记录下来的URL摘要的总和。然后将域名解析到注入防御模块中。
应当理解的是,剔除参数值后不能保证100%无效跨站脚本攻击注入,但是可以防御绝大多数攻击。
通过上述方式,已经作好防御的准备,接下来阐述防御的过程,具体地:
首先可以通过设置反向代理服务器,由反向代理服务器获取攻击者对URL进行跨站脚本攻击的注入请求,并将请求转发到跨站脚本攻击注入防御模块,跨站脚本攻击注入防御模块判断请求地址是否在提取出来的摘要集合中。如果存在,则说明此URL存在注入漏洞,需要进行防御,执行后续步骤;否则则认为该请求为安全请求,直接转发给目标服务器的web站点。
在进行防御时,跨站脚本攻击注入防御模块对URL中包含的各个参数值进行替换;并获取脚本替换规则库,采用正则表达式替换所有相关关键字,相关关键字包括但不限于:<script></script>标签块以及onclick、javascript等跨站脚本攻击语句关键字等。替换后即可生成安全请求。
将替换后的安全请求转发到目标的服务器web站点上,从而防御了攻击。
举个例子:当攻击者使用http://abc.com/?id=1<scripttype='text/javascript'>alert('pwnd');</script>注入时,自动防御模块判断匹配数据库中的URL摘要集合中是否存在注入问题,若存在,则调用注入防御模块对url中的各个参数通过脚本替换规则库替换,将其参数id中的<scripttype='text/javascript'>alert('pwnd');</script>剔除,变为http://abc.com/?id=1,将这个请求转发给目标服务器,这时就自动避免了本次攻击。
综上所述,本发明实施例通过剔除参数值,生成URL摘要集合以作为防御的基础及准备;再判断其存在跨站脚本攻击注入漏洞时,通过脚本替换规则库,并采用正则表达式替换所述URL参数的参数值及相关关键字,以生成安全请求,再发送给目标服务器,实现自动防御的功能。因此本发明实施例二可以降低对程序员的要求,提高网站的安全性,无需对源代码进行修改,即可自动对站点进行防御。
承上,如图3所示,本发明实施例三提供一种防止跨站脚本攻击的系统100,包括注入检测模块110、注入防御模块120及目标服务器130,其中还包括:
注入检测模块110,用于检测站点,
URL参数模块140,生成需要防御的接口URL参数;
解析提取模块150,用于解析所述接口的URL参数,提取参数名称,生成URL摘要集合;
域名解析模块160,用于解析域名到注入防御模块;
攻击获取模块170,用于获取攻击者对注入防御模块的注入请求;
注入防御模块120,用于判断所述注入请求的地址是否在所述URL摘要集合中;
注入防御模块120还用于替换所述URL参数的参数值及相关关键字,获得安全请求;
发送模块180,用于发送所述安全请求到目标服务器WEB站点上。
其中,如图4所示,本发明实施例四中的解析提取模块150还包括:
剔除单元151,用于解析所述请求参数,剔除参数值;
生成单元152,用于生成仅包含参数名称的URL摘要集合。
其中,在注入防御模块120判断所述注入请求的地址不在所述URL摘要集合中后,注入防御模块120还用于确认所述请求为安全请求;
并执行步骤“发送所述安全请求到目标服务器WEB站点上”。
其中,注入防御模块120还包括:
参数值替换单元121,用于替换所有所述参数值;
关键字替换单元122,用于根据脚本替换规则库,并采用正则表达式替换相关关键字;
安全请求生成单元123,用于生成安全请求。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种防止跨站脚本攻击的方法,其特征在于,包括:
使用注入检测模块检测站点,生成需要防御的接口URL参数;
解析所述接口URL参数,提取参数名称,生成URL摘要集合;
解析域名到注入防御模块;
获取攻击者对注入防御模块的注入请求;
注入防御模块判断所述注入请求的地址是否在所述URL摘要集合中;
若是,则注入防御模块替换所述URL参数的参数值及相关关键字,获得安全请求;
发送所述安全请求到目标服务器WEB站点上。
2.根据权利要求1所述防止跨站脚本攻击的方法,其特征在于,解析所述接口的URL参数,提取参数名称的步骤具体为:
解析所述接口的URL参数,剔除参数值;
生成仅包含参数名称的URL摘要集合。
3.根据权利要求1所述防止跨站脚本攻击的方法,其特征在于,注入防御模块判断所述注入请求的地址是否在所述URL摘要集合中的步骤之后,还包括:
若否,则注入防御模块确认所述请求为安全请求;
并执行步骤“发送所述安全请求到目标服务器WEB站点上”。
4.根据权利要求1所述防止跨站脚本攻击的方法,其特征在于,注入防御模块替换所述URL参数的参数值及相关关键字,获得安全请求的步骤具体为:
替换所有所述参数值;
根据脚本替换规则库,采用正则表达式替换相关关键字;
生成安全请求。
5.一种防止跨站脚本攻击的系统,包括目标服务器,其特征在于,还包括:
注入检测模块,用于对站点进行检测;
URL参数模块,用于生成需要防御的接口的URL参数;
解析提取模块,用于解析所述接口的URL参数,提取参数名称,生成URL摘要集合;
域名解析模块,用于解析域名到注入防御模块;
攻击获取模块,用于获取攻击者的注入请求;
注入防御模块,用于判断所述注入请求的地址是否在所述URL摘要集合中;
注入防御模块还用于替换所述URL参数的参数值及相关关键字,获得安全请求;
发送模块,用于发送所述安全请求到目标服务器WEB站点上。
6.根据权利要求5所述防止跨站脚本攻击的系统,其特征在于,解析提取模块还包括:
剔除单元,用于解析所述接口的URL参数,剔除参数值;
生成单元,用于生成仅包含参数名称的URL摘要集合。
7.根据权利要求5所述防止跨站脚本攻击的系统,其特征在于,在注入防御模块判断所述注入请求的地址不在所述URL摘要集合中后,注入防御模块还用于确认所述请求为安全请求。
8.根据权利要求5所述防止跨站脚本攻击的系统,其特征在于,注入防御模块还包括:
参数值替换单元,用于替换所有所述参数值;
关键字替换单元,用于根据脚本替换规则库,并采用正则表达式替换相关关键字;
安全请求生成单元,用于生成安全请求。
CN201510475924.1A 2015-08-06 2015-08-06 防止跨站脚本攻击的方法及系统 Active CN105072109B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510475924.1A CN105072109B (zh) 2015-08-06 2015-08-06 防止跨站脚本攻击的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510475924.1A CN105072109B (zh) 2015-08-06 2015-08-06 防止跨站脚本攻击的方法及系统

Publications (2)

Publication Number Publication Date
CN105072109A true CN105072109A (zh) 2015-11-18
CN105072109B CN105072109B (zh) 2018-03-30

Family

ID=54501389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510475924.1A Active CN105072109B (zh) 2015-08-06 2015-08-06 防止跨站脚本攻击的方法及系统

Country Status (1)

Country Link
CN (1) CN105072109B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107483442A (zh) * 2017-08-18 2017-12-15 国云科技股份有限公司 一种Web应用攻击防御方法
CN109347820A (zh) * 2018-10-12 2019-02-15 江苏满运软件科技有限公司 一种应用安全防御方法及系统
CN116647412A (zh) * 2023-07-26 2023-08-25 北京理想乡网络技术有限公司 一种Web服务器的安全防御方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880830A (zh) * 2011-07-15 2013-01-16 华为软件技术有限公司 一种原始测试数据的采集方法及装置
CN103023869A (zh) * 2012-11-02 2013-04-03 北京奇虎科技有限公司 恶意攻击防止方法和浏览器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880830A (zh) * 2011-07-15 2013-01-16 华为软件技术有限公司 一种原始测试数据的采集方法及装置
CN103023869A (zh) * 2012-11-02 2013-04-03 北京奇虎科技有限公司 恶意攻击防止方法和浏览器

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107483442A (zh) * 2017-08-18 2017-12-15 国云科技股份有限公司 一种Web应用攻击防御方法
CN109347820A (zh) * 2018-10-12 2019-02-15 江苏满运软件科技有限公司 一种应用安全防御方法及系统
CN109347820B (zh) * 2018-10-12 2021-10-22 江苏满运软件科技有限公司 一种应用安全防御方法及系统
CN116647412A (zh) * 2023-07-26 2023-08-25 北京理想乡网络技术有限公司 一种Web服务器的安全防御方法和系统
CN116647412B (zh) * 2023-07-26 2024-01-26 深圳市鹿驰科技有限公司 一种Web服务器的安全防御方法和系统

Also Published As

Publication number Publication date
CN105072109B (zh) 2018-03-30

Similar Documents

Publication Publication Date Title
Gupta et al. XSS-secure as a service for the platforms of online social network-based multimedia web applications in cloud
Lekies et al. 25 million flows later: large-scale detection of DOM-based XSS
Son et al. The Postman Always Rings Twice: Attacking and Defending postMessage in HTML5 Websites.
Jovanovic et al. Preventing cross site request forgery attacks
CN103001817B (zh) 一种实时检测网页跨域请求的方法和装置
CN105049440B (zh) 检测跨站脚本攻击注入的方法及系统
US9817969B2 (en) Device for detecting cyber attack based on event analysis and method thereof
CN108881101B (zh) 一种基于文档对象模型的跨站脚本漏洞防御方法、装置以及客户端
CN105046150A (zh) 防止sql注入的方法及系统
Nithya et al. A survey on detection and prevention of cross-site scripting attack
KR100732689B1 (ko) 웹 보안방법 및 그 장치
Barua et al. Server side detection of content sniffing attacks
CN107896219B (zh) 一种网站脆弱性的检测方法、系统及相关装置
EP2850781A1 (en) Methods, systems, and computer readable media for measuring detection accuracy of a security device using benign traffic
CN109040097A (zh) 一种跨站脚本攻击的防御方法、装置、设备和存储介质
Wang et al. A combined static and dynamic analysis approach to detect malicious browser extensions
Fraiwan et al. Analysis and identification of malicious javascript code
Chaudhary et al. A novel framework to alleviate dissemination of XSS worms in online social network (OSN) using view segregation.
Chaudhary et al. Plague of cross-site scripting on web applications: a review, taxonomy and challenges
KR101487476B1 (ko) 악성도메인을 검출하기 위한 방법 및 장치
CN105072109B (zh) 防止跨站脚本攻击的方法及系统
Kerschbaumer et al. Injecting CSP for fun and security
Barhoom et al. A new server-side solution for detecting cross site scripting attack
Selvamani et al. Protection of web applications from cross-site scripting attacks in browser side
Mun et al. Secure short url generation method that recognizes risk of target url

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant