CN104243475A - 基于web反向代理的动态混淆的方法及系统 - Google Patents
基于web反向代理的动态混淆的方法及系统 Download PDFInfo
- Publication number
- CN104243475A CN104243475A CN201410480220.9A CN201410480220A CN104243475A CN 104243475 A CN104243475 A CN 104243475A CN 201410480220 A CN201410480220 A CN 201410480220A CN 104243475 A CN104243475 A CN 104243475A
- Authority
- CN
- China
- Prior art keywords
- web
- reverse proxy
- page data
- http
- dynamic
- 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
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种基于WEB反向代理的动态混淆的方法及系统,其中的方法包括:客户端初次发起的HTTP请求通过反向代理转发给服务器端;服务器端根据收到的HTTP请求发出HTTP应答;其中,HTTP应答为WEB静态页面数据;当HTTP应答到达反向代理时,反向代理将HTTP应答中的WEB静态页面数据转换为WEB混淆动态页面数据;反向代理将获得的WEB混淆动态页面数据的HTTP应答转发给客户端,其转换过程包括:对HTTP应答中的WEB静态页面数据进行解析编译、变量代理和源码混淆,获得WEB混淆动态页面数据。利用本发明,能够解决WEB客户端容易被恶意分析、扫描漏洞、并利用漏洞发起攻击的WEB服务的安全性问题。
Description
技术领域
本发明涉及移动浏览器技术领域,更为具体地,涉及一种基于WEB反向代理的动态混淆的方法及系统。
背景技术
在WEB服务高速发展的同时,WEB安全问题也已日益凸显。由于承载WEB服务的是HTML、JavaScript等文本形式的明文语言,相当于在WEB客户端可以看到页面源代码,也就容易被恶意分析,扫描漏洞,并利用漏洞发起攻击。
WEB服务指HTTP服务,即基于HTML的网页服务。HTTP的请求通过传输协议(TCP/UDP)发出,HTTP服务器通过在固定端口提供的WEB服务来完成对HTTP请求的响应。通过一个简单的登陆页面来说明HTTP访问的基本流程和常见命令,图1示出了HTTP一次请求与应答的流程。如图1,服务器端根据客户端发出的HTTP请求做出相对应的响应。客户端为Browser浏览器,整个登陆的交互过程可以分为五步,分别说明如下:
Step 1:客户端浏览器发出HTTP请求。如图1中请求为GET一个名为index的页面。该页面提供用户输入用户名和密码。
Step 2:HTTP服务器接收到请求数据,并对该请求应答index.html的页面。如图1中所示,应答数据分为两个部分,HTTP协议头,其包含(请求或)应答状态,以及HTTP数据部分,即HTML页面代码。其中协议返回的200OK表明HTTP Server响应正确,其具体含义见HTTP协议RFC2616
Step 3:客户端浏览器收到HTML页面数据,并对页面数据进行解析执行。浏览器根据解析执行效果显示HTTP页面界面。可以看到页面中的form表单中的输入用户名和密码的input对话框的名称分别为“username”和“passwd”。
Step 4:在客户端浏览器界面对应的输入框中,输入用户名和密码,本例中输入的用户名为test,密码为test123,并点击“login”按钮。浏览器对服务器端发出POST请求。其中HTTP数据部分,即提交的数据内容为登陆信息:username=test,passwd=test123。(HTTP服务的密码不推荐用明文传输,应该使用类似digest的方式传输,为了说明问题使用最简单的方式,即明文传输密码)。
Step 5:服务器端收到客户端浏览器发出的POST请求,并执行对应的登陆信息验证,如果登陆成功,则返回正确登陆的页面。客户端收到该页面后解析HTML并显示界面。
由于客户端浏览器获得的都是格式清晰且静态的页面内容,所以可以通过对页面内容和浏览器发出的数据包进行分析,从而写出可以被HTTP服务器响应的脚本,以完成浏览器的一些功能。并且诸如网络爬虫、网络扫描器等这类网络工具,都可以自动对静态页面内容进行分析,甚至直接计算出页面存在的漏洞以及可用的渗透或攻击方式。很多WEB安全问题也正是基于此。脚本具有自动执行、资源消耗低、灵活调用等特点,容易被攻击者用来进行WEB渗透和攻击。为了说明静态的标准格式页面数据,容易被攻击的事实,图2示出了使用简单的linux shell脚本来说明脚本发出页面请求的流程。
如图2所示,使用linux命令curl来对服务器发出HTTP登陆请求,且无需获得登陆的页面。其中curl命令执行方式,第一个参数为POST的对象URL,第二个-d参数为POST的数据内容。图2中模仿浏览器输入的用户名和密码发出登陆请求信息:username=test且passwd=test123。具体执行流程如图2所示,脚本发出了与浏览器相同的登陆请求内容,HTTP服务器对其做出了响应,并返回登陆成功的页面。对比图1与图2可以看出脚本登陆的流程更简便,脚本可以任意构造HTTP请求信息,可以模拟任何HTTP客户端发出请求,并且脚本消耗很低的资源即可完成浏览器的功能。
上述图2为简单HTTP登陆的例子;为了进一步说明静态的标准格式页面数据,容易被攻击的事实,图3示出了模拟用暴力穷举的方式破解登陆密码的流程;如图3所示,使用linux shell脚本模拟用暴力穷举的方式破解登陆密码。如图1所示,攻击者通过正常的访问或者爬虫工具获得登陆页面代码,分析代码(或数据包)判断表单中字段含义,可以得出input标签中,username和passwd是分别代表了用户名和密码的HTML变量。图3根据图1的上述方式编写脚本,如图3,使用for循环,穷举密码为test1到test123。使用每个穷举密码用curl命令尝试登陆,并最终以正确的密码登陆成功。
但是在图3所示的登录过程中,如何以WEB服务器端最少的改动,且性能损耗最小的情况下,对HTTP静态页面进行保护,为工具和人为分析制造障碍,增加恶意攻击的成本,提高HTTP服务的安全性。
总之,需要提供一种新的方法,以避免客户端容易被恶意分析,扫描漏洞,并利用漏洞发起攻击,提高WEB服务的安全性。
发明内容
鉴于上述问题,本发明的目的是提供一种基于WEB反向代理的动态混淆的方法及系统,以解决WEB客户端容易被恶意分析、扫描漏洞、并利用漏洞发起攻击的WEB服务的安全性问题。
一方面,本发明提供一种基于WEB反向代理的动态混淆的方法,包括:
将客户端初次发起的HTTP请求通过反向代理转发给服务器端;
服务器端根据收到的HTTP请求发出HTTP应答;其中,HTTP应答为WEB静态页面数据;
当HTTP应答到达反向代理时,反向代理将HTTP应答中的WEB静态页面数据通过转换为WEB混淆动态页面数据;
反向代理将获得的WEB混淆动态页面数据的HTTP应答转发给客户端;
其中,反向代理将HTTP应答中的WEB静态页面数据通转换为WEB混淆动态页面数据的过程包括:
对HTTP应答中的WEB静态页面数据进行解析编译;
将解析得到的HTML关键表单中的标签元素的值与服务器端的真实变量值进行替换,获得WEB动态页面数据;
将WEB动态页面数据进行源码混淆,获得WEB混淆动态页面数据。
此外,优选的方案是,在反向代理将获得的WEB混淆动态页面数据的HTTP应答转发给客户端之后,基于WEB反向代理的动态混淆的方法还包括,
客户端将收到的WEB混淆动态页面数据的HTTP数据提交请求提交给反向代理;
反向代理将WEB混淆动态页面数据的HTTP数据提交请求翻译为服务器端的WEB静态页面数据的HTTP数据提交请求,并提交给服务器端。
此外,优选的方案是,在获得WEB混淆动态页面数据的过程中,采用固定转换方式将解析得到的HTML关键表单中的标签元素的值替换服务器端的真实变量值,将服务器端的真实变量值的转换方式保存在反向代理中。
此外,优选的方案是,在反向代理在保存服务器端的真实变量值的转换方式的同时,接收到含有KEY的进一步HTTP请求,将收到进一步HTTP请求中的KEY与翻译的变量值进行运算,翻译出服务器端发出的HTTP应答中的真实变量值;其中,
在含有KEY的进一步HTTP请求中,KEY由反向代理根据客户端的信息生成,并保存在客户端,在客户端进行进一步HTTP请求时,将含有KEY的进一步HTTP请求发到反向代理。
此外,优选的方案是,在获得WEB混淆动态页面数据的过程中,在不改变WEB动态页面显示与正确执行的前提下,对WEB动态页面数据中的HTML代码和嵌入的JavaScript代码进行混淆,获得WEB混淆动态页面数据。
另一方面,本发明还提供一种基于WEB反向代理的动态混淆系统,包括:
HTTP请求发起单元,用于将客户端初次发起的HTTP请求通过反向代理转发给服务器端;
HTTP应答发出单元,用于在服务器端根据收到的HTTP请求发出HTTP应答;其中,HTTP应答为WEB静态页面数据;
反向代理转换单元,用于当HTTP应答到达反向代理时,反向代理将HTTP应答中的WEB静态页面数据转换为WEB混淆动态页面数据;
HTTP应答转发单元,用于在反向代理将获得的WEB混淆动态页面数据的HTTP应答转发给客户端;
其中,反向代理转换单元进一步包括:
解析编译单元,用于对HTTP应答中的WEB静态页面数据进行解析编译;
动态代理单元,用于将解析得到的HTML关键表单中的标签元素的值与服务器端的真实变量值进行替换,获得WEB动态页面数据;
源码混淆单元,用于将WEB动态页面数据进行源码混淆,获得WEB混淆动态页面数据。
从上面的技术方案可知,本发明的基于WEB反向代理的动态混淆的方法及系统,客户端通过HTTP请求,得到HTML混淆代码,使得客户端无法轻易的通过人为分析或工具分析获悉页面元素的含义,进而提高了攻击难度,增强了WEB服务的安全性。应用本发明的方法,客户端每次请求的页面中的表单中的关键元素都被动态代理,即客户端每次看到的页面表单元素大不相同,使得攻击者(或工具)无法确定表单元素含义,并且无法构造出自动执行的攻击方法。同时,本发明还提出了反向代理的加速方法,使得在有效提高WEB服务安全性的同时,把性能损耗降到最低。
为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
附图说明
通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
图1为HTTP一次请求与应答的流程示意图;
图2为使用简单的linux shell脚本来说明脚本发出页面请求的流程示意图;
图3为模拟用暴力穷举的方式破解登陆密码的流程示意图;
图4为根据本发明实施例的基于WEB反向代理的动态混淆的方法流程示意图;
图5为根据本发明实施例的反向代理网关的部署方式示意图;
图6示出了根据本发明实施例的反向代理流程示意图;
图7为根据本发明实施例的在反向代理中执行变量代理的流程示意图;
图8A为根据本发明实施例的HTML代码混淆示意图;
图8B为根据本发明实施例的JavaScript代码混淆示意图;
图9为根据本发明实施例的基于WEB反向代理的动态混淆第二流程示意图;
图10为根据本发明实施例的WEB混淆动态页面数据的HTTP数据提交请求提交给反向代理流程示意图;
图11为根据本发明实施例的反向代理的动态代理的加速逻辑流程示意图;
图12为根据本发明实施例的基于WEB反向代理的动态混淆的系统逻辑结构示意图。
在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施方式
在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。
针对前述提出的WEB客户端容易被恶意分析、扫描漏洞、并利用漏洞发起攻击的问题,本发明将源码混淆与动态代理方式相结合,并将它们应用在反向代理网关上,在不失性能的前提下,大幅提高WEB服务的安全性。本发明继承了反向代理网关的特性之一,具有代理性能高、能降低WEB服务器负荷的特点;并且,源码混淆和动态代理功能的应用,使得客户端无法看到静态的格式化的页面数据,给攻击制造了很大的困难,大幅提高了网络攻防的对抗强度,进而增强HTTP服务器端的安全性。
以下将结合附图对本发明的具体实施例进行详细描述。
为了说明本发明提供的基于WEB反向代理的动态混淆的方法及系统方法,图4示出了根据本发明实施例的基于WEB反向代理的动态混淆的方法流程。
如图4所示,本发明提供的基于WEB反向代理的动态混淆的方法包括:
S410:客户端初次发起的HTTP请求通过反向代理转发给服务器端。
在本发明的HTTP请求为HTTP GET请求,也就是说,客户端将HTTPGET请求发出去,经过反向代理服务器,反向代理服务器将HTTP GET请求转发给服务器端。
其中,需要说明的是,在本发明中,HTTP请求和下文提到的HTTP应答在数据包(或数据流)中分为两个部分,HTTP协议头和HTTP数据。HTTP协议头保存了HTTP的指令内容、端信息、HTTP数据类型等内容。根据请求类型的区别决定HTTP数据部分位于请求还是应答的数据中。例如HTTPPOST请求(即:向服务器提交数据的请求),则HTTP请求中将含有HTTP数据内容。HTTP GET请求含义为获得制定URL的数据内容(即:获得服务器端数据),所以在HTTP应答中含有HTTP数据内容。
并且,反向代理区别于普通代理(即客户端的代理)机制,反向代理是指服务器端的代理机制;服务器通过反向代理实现具体的网络服务。
相对于HTTP(客户端)代理服务,反向代理是指在HTTP服务器端部署的,对到达HTTP服务器的数据提供代理服务的软件(或软件设备)。目前反向代理网关应用广泛,功能完善,且有成熟的开源软件支撑。反向代理的主要应用有:对于大并发连接进行数据业务代理、cache加速、负载均衡、HTTP虚拟主机服务、HTTP重定向服务等,具体的功能可以根据用户需求进行配置和开启或关闭。反向代理是指部署为反向代理网关的系统或设备。为了说明反向代理网关部署方式和工作流程,图5示出了根据本发明实施例的反向代理网关的部署方式;图6示出了根据本发明实施例的反向代理流程。
如图5和图6所示,反向代理网关的角色是将客户端的请求在到达服务器前进行代理转发,可以根据该网关正在应用例如负载均衡、Cache加速、HTTP重定向等功能提供的逻辑进行相应的转发或直接返回应答。
S420:服务器端根据收到的HTTP请求发出HTTP应答;其中,HTTP应答为WEB静态页面数据。
也就是说,服务器端收到HTTP GET请求后,发出HTTP应答,此时HTTP应答的数据为原始数据,即:WEB静态页面数据是格式化的静态页面数据。
S430:当HTTP应答到达反向代理时,反向代理将HTTP应答中的WEB静态页面数据转换为WEB混淆动态页面数据。
其转换过程包括:对HTTP应答中的WEB静态页面数据进行解析编译;将解析得到的HTML关键表单中的标签元素的值与服务器端的真实变量值进行替换,获得WEB动态页面数据;将WEB动态页面数据进行源码混淆,获得WEB混淆动态页面数据。其中,解析得到的HTML关键表单中的标签元素的值也可以为JavaScript变量值。
也就是说,当HTTP应答到达反向代理后,需要经过三个步骤,将HTTP应答中的WEB静态页面数据处理为动态页面数据,即:将WEB静态页面数据中的静态代码处理为动态混淆代码。三个步骤分别为:词法语法分析、动态代理和源码混淆。
在词法语法分析过程中,反向代理对HTTP应答中的WEB静态页面数据中的HTML和JavaScript进行解析编译,掌握其表达的逻辑。
其中,HTML即超级文本标记语言,是标准通用标记语言(markuplanguage)中的一种应用。它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容。
JavaScript是一种基于对象和事件驱动的客户端脚本语言。同时也是一种广泛用于客户端WEB开发的脚本语言,常用来给HTML(标准通用标记语言的子集)网页添加动态功能,比如响应用户的各种操作。它是一种动态、弱类型、基于原型的语言,内置支持类。编写一个静态文件,将该文件后缀名改为.HTML后保存,用浏览器打开该文件,可以看到JavaScript在本地浏览器中得到执行。
在获得WEB混淆动态页面数据的过程中,采用固定转换方式将解析得到的HTML关键表单中的标签元素的值替换服务器端的真实变量值。
也就是说,获得WEB动态页面数据的过程为动态代理,在动态代理过程中,通过HTML关键表单中的标签元素的值屏蔽服务器端的真实变量值。
需要进一步说明的是,在采用固定转换方式将解析得到的HTML关键表单中的标签元素的值替换服务器端的真实变量值的过程中,将服务器端的真实变量值的转换方式保存在反向代理中。本发明中,动态代理是指将HTML中的表单内容中的与服务器发生交互变量值进行代理。即由固定转换方式将服务器端的真实变量值进行屏蔽,始终对客户端提供不断变化的(即每次请求得到的表单内容中的变量都不同)表单页面内容。
HTML表单即<form>字段,其中内容可以被代理的有form的name属性、action属性、Form表单中的input标签的name属性。为了说明在反向代理中执行变量的动态,图7示出了根据本发明实施例的在反向代理中执行变量代理的流程。
如图7所示,Step1:WEB服务器给出的页面HTML中的input标签被解析出,并应用一定的转化方法,将name字段进行变量值的替换:username替换为SFPTUVWX。
Step2:客户端接收到的页面中input标签的name属性为替换后的值。
Step3:客户端在页面输入登陆信息并点击提交,HTTP的POST的数据部分为SFPTUVWX=[用户名]。
Step4:反向代理接收到客户端发来的POST数据,反向代理将其按照变量代理的转发方法进行翻译,得出username=[用户名]的数据,并将数据进行转发。
以上步骤是指一次请求与对应的提交的流程,动态代理的“动态”的含义是指每次HTTP GET请求获得的页面数据中的变量值都不同。
在将WEB动态页面数据进行源码混淆,获得WEB混淆动态页面数据的过程中,在不改变WEB动态页面显示与正确执行的前提下,对WEB动态页面数据中的HTML代码和嵌入的JavaScript代码进行混淆,从而获得WEB混淆动态页面数据。
也就是说,WEB服务器发出的HTML代码和其中嵌入的JavaScript代码进行混淆。在不改变原有语义(WEB页面显示与执行正确)的前提下,增加阅读难度,使得WEB攻击者难以分析代码逻辑,无法构造出针对该WEB服务的攻击模型。
其中,源码混淆(Obfuscated code)是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成下划线这样的符号,使得阅读的人无法根据名字猜测其用途。重写代码中的部分逻辑,将其变成功能上等价,但是更难理解的形式,即打乱代码的格式;比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等等。
为了说明HTML代码和JavaScript代码进行混淆,图8A和图8B分别示出了根据本发明实施例的HTML代码混淆和JavaScript代码混淆的示例。
如图8A和8B所示,图8A和8B的左边分别为编写出的基本功能的HTML和JavaScript的代码,图8A和8B右边分别为经过代码混淆后的HTML和JavaScript代码。(注,由于空间限制,图中只选取了部分混淆后的代码)。
S440:反向代理将获得的WEB混淆动态页面数据的HTTP应答转发给客户端。
具体地,在反向代理经过词法语法分析、动态代理和源码混淆的三个步骤,将HTTP应答的WEB静态页面数据转换为WEB混淆动态页面数据后,将获得的WEB混淆动态页面数据的HTTP应答转发给客户端。
此时,客户端获得的是难以辨识的混淆代码。难以理解和辨识的混淆代码,既不影响正常用户的浏览器(或其它客户端)的页面逻辑,又对攻击者(或爬虫工具)制造了极大的攻击障碍,增强了WEB服务的安全性。
为了进一步说明基于WEB反向代理的动态混淆的方法,图9示出了根据本发明实施例的基于WEB反向代理的动态混淆第二流程。
如图9所示,客户端初次发起的请求,经过反向代理的转发后到达服务器端,服务器发出HTTP应答数据,即静态页面数据。该HTTP应答数据到达反向代理后,经过三个步骤,将静态代码处理为动态混淆代码。
三个步骤分别为:1词法语法分析,2动态代理,3源码混淆。
词法语法分析:将WEB页面数据(HTML和JavaScript)进行解析编译,掌握其表达的逻辑,该过程与客户端对页面的处理类似。动态代理:解析得到的HTML关键表达(Form)中的标签元素的值进行替换,该过程要保留替换的方法,或替换的翻译表。源码混淆:在不改变原有语义的前提下,对HTML和JavaScript进行源码混淆。
此时,HTTP应答的数据由格式化的静态原始数据转换为混淆的动态代理数据。因此,客户端接收到的是很难辨识的混淆的动态数据。
在本发明中,基于WEB反向代理的动态混淆的方法还包括:客户端将收到的WEB混淆动态页面数据的HTTP数据提交请求提交给反向代理;反向代理将WEB混淆动态页面数据的HTTP数据提交请求翻译为服务器端的WEB静态页面数据的HTTP数据提交请求,并提交给服务器端。
也就是说,客户端将收到的经过三个步骤处理获得的混淆的动态代理数据的HTTP数据提交请求提交给反向代理,反向代理将经过处理的混淆的动态代理数据的HTTP数据提交请求翻译为服务器端的未经过处理的格式化的静态原始数据的HTTP数据提交请求。
为了说明将处理的数据提交给反向代理的流程,图10示出了根据本发明实施例的WEB混淆动态页面数据的HTTP数据提交请求提交给反向代理流程。
如图10所示,客户端接收到的被代理转化过的数据(代理数据),并提出HTTP POST请求,将代理数据提交给反向代理,反向代理经过词法语法分析、动态代理等步骤将混淆的动态代理数据翻译为格式化的静态原始数据,并再次发给服务器端。
需要说明的是,经过处理的代理数据返回给客户端,并且客户端每次请求获得的代码都大不相同,任何数据的提交都被反向代理执行判断。客户端只有对混淆代码做出正确的响应才能被反向代理服务器正确翻译为服务器端的原始数据。
若将变量值进行动态代理,就要求反向代理必须正确的将提交的数据翻译为HTTP服务器端的原始内容,通常的理解是将代理的值保存为字典形式,存储于反向代理。例如保存关系(A->B,C->D),表示客户端看到的是B和D,而服务器发出的原始数据是A和C,当数据到达后查字典进行翻译。
而本发明为了有效解决大规模并发连接的情况下的代理字典的存储和查询问题,本发明还提供了反向代理的动态代理的加速方法,反向代理在保存服务器端的真实变量值的转换方式的同时,反向代理如果接收到含有KEY的进一步HTTP请求,则将收到进一步HTTP请求中的KEY与被翻译的变量值进行运算,翻译出服务器端发出的HTTP应答中的真实变量值。
也就是说,反向代理的动态代理的加速方法包括了两部分,第一部分为保存服务器端的真实变量值的转换方式;第二部分为收到进一步HTTP请求中的KEY与真实变量值进行运算,翻译出服务器端发出的HTTP应答中的WEB静态页面数据。
其中,需要说明的是,在含有KEY的进一步HTTP请求中,KEY由反向代理根据客户端特征、时间、HTTP请求类型的信息生成KEY,并保存在客户端,在客户端进行进一步HTTP请求时,将含有KEY的进一步HTTP请求发到反向代理。
需要说明的是,根据客户端的信息生成的KEY,并不是说仅仅保存在客户端,而是保存在页面中,当时客户端再次发出请求时,保存在页面中的KEY随着HTTP请求被发送到反向代理。
为了说明本发明提供的动态代理的加速方法,图11示出了根据本发明实施例的反向代理的动态代理的加速逻辑流程。
如图11所示,反向代理在保存服务器端的真实变量值的转换方式的同时,反向代理服务器根据客户端特征、时间、HTTP请求类型等内容生成一个KEY保存在客户端,比如保存在HTTP URL或HTTP COOKIE中,客户端对该页面进行进一步请求时会将KEY带回到反向代理。
如图11所示的反向代理进行加速动态代理,能够保证处理性能,并能够有效解决大规模并发连接的情况下的代理字典的存储和查询问题。代理服务器只需要将收到的数据包中的KEY与变量值进行简单运算(如hash或MD5)即可翻译出原始变量值。
使用本发明提供的基于WEB反向代理的动态混淆的方法,将服务器静态页面数据进行动态混淆,使得客户端看到的页面数据是混淆后的,每次请求都不同的,难以理解的混乱代码,既不影响正常用户的浏览器(或其它客户端)的页面逻辑,又对攻击者(或爬虫工具)制造了极大的攻击障碍,增强了WEB服务的安全性。
与上述方法相对应,本发明还提供一种基于WEB反向代理的动态混淆的系统,图12示出了根据本发明实施例的基于WEB反向代理的动态混淆的系统逻辑结构。
如图12所示,本发明提供的基于WEB反向代理的动态混淆的系统1200包括HTTP请求发起单元1210、HTTP应答发出单元1220、反向代理转换单元和HTTP应答接收单元1240。
其中,HTTP请求发起单元1210用于将客户端初次发起的HTTP请求通过反向代理转发给服务器端。
HTTP应答发出单元1220用于在服务器端根据收到的HTTP请求发出HTTP应答;其中,HTTP应答为WEB静态页面数据。
反向代理转换单元1230用于当HTTP应答到达反向代理时,反向代理将HTTP应答中的WEB静态页面数据转换为WEB混淆动态页面数据。
HTTP应答接收单元1240用于在反向代理将获得的WEB混淆动态页面数据的HTTP应答转发给客户端。
其中,反向代理转换单元1230进一步包括解析编译单元1231、动态代理单元1232、和源码混淆单元1233。
解析编译单元1231用于对HTTP应答中的WEB静态页面数据进行解析编译。
动态代理单元1232用于将解析得到的HTML关键表单中的标签元素的值与服务器端的真实变量值进行替换,获得WEB动态页面数据。其中,解析得到的HTML关键表单中的标签元素的值也可以为JavaScript变量值。
源码混淆单元1233用于将WEB动态页面数据进行源码混淆,获得WEB混淆动态页面数据。
其中,基于WEB反向代理的动态混淆的系统1200还包括:HTTP数据提交请求提交单元用于在客户端将收到的WEB混淆动态页面数据的HTTP应答提交给反向代理。
反向代理翻译单元用于在反向代理将WEB混淆动态页面数据的HTTP数据提交请求翻译为服务器端的WEB静态页面数据的HTTP数据提交请求,并提交给服务器。
动态代理单元1232采用固定转换方式将解析得到的HTML关键表单中的标签元素的值替换服务器端的真实变量值,将服务器端的真实变量值的转换方式保存在反向代理中。
在反向代理保存服务器端的真实变量值的转换方式的同时,接收到含有KEY的进一步HTTP请求,将收到进一步HTTP请求中的KEY与被翻译的变量值进行运算,翻译出服务器端发出的HTTP应答中的真实变量值。
其中,在含有KEY的进一步HTTP请求中,KEY由反向代理根据客户端特征、时间、HTTP请求的信息生成,并保存在客户端,在客户端进行进一步HTTP请求时,将含有KEY的进一步HTTP请求发到反向代理。
在源码混淆单元1233获得WEB混淆动态页面数据的过程中,在不改变WEB动态页面显示与正确执行的前提下,对WEB动态页面数据中的HTML代码和嵌入的JavaScript代码进行混淆,获得WEB混淆动态页面数据。
通过上述实施方式可以看出,本发明所述的基于WEB反向代理的动态混淆的方法及系统,客户端通过HTTP请求,始终得到HTML(或JavaScript)混淆代码,使得客户端无法轻易的通过人为分析或工具分析获悉页面元素的含义,进而提高攻击难度,增强WEB服务的安全性。采用本发明,客户端每次请求的页面中的表单中的关键元素都被动态代理,即客户端每次看到的页面表单元素大不相同,使得攻击者(或工具)无法确定表单元素含义,并且无法构造出自动执行的攻击方法。同时,本发明还提供动态代理的加速方法,使得在有效提高WEB服务安全性的同时,把性能损耗降到最低。
如上参照附图以示例的方式描述了根据本发明提出的基于WEB反向代理的动态混淆的方法及系统。但是,本领域技术人员应当理解,对于上述本发明所提出的基于WEB反向代理的动态混淆的方法及系统,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。
Claims (10)
1.一种基于WEB反向代理的动态混淆的方法,包括:
将客户端初次发起的HTTP请求通过反向代理转发给服务器端;
所述服务器端根据收到的所述HTTP请求发出HTTP应答;其中,所述HTTP应答为WEB静态页面数据;
当所述HTTP应答到达所述反向代理时,所述反向代理将所述HTTP应答中的WEB静态页面数据转换为WEB混淆动态页面数据;
所述反向代理将获得的所述WEB混淆动态页面数据的HTTP应答转发给所述客户端;
其中,所述反向代理将所述HTTP应答中的WEB静态页面数据转换为WEB混淆动态页面数据的过程包括:
对所述HTTP应答中的WEB静态页面数据进行解析编译;
将解析得到的HTML关键表单中的标签元素的值与所述服务器端的真实变量值进行替换,获得WEB动态页面数据;
将所述WEB动态页面数据进行源码混淆,获得WEB混淆动态页面数据。
2.如权利要求1所述的基于WEB反向代理的动态混淆的方法,在所述反向代理将获得的所述WEB混淆动态页面数据的HTTP应答转发给所述客户端之后,还包括,
所述客户端将收到的WEB混淆动态页面数据的HTTP数据提交请求提交给所述反向代理;
所述反向代理将WEB混淆动态页面数据的HTTP数据提交请求翻译为所述服务器端的所述WEB静态页面数据的HTTP数据提交请求,并提交给所述服务器端。
3.如权利要求1所述的基于WEB反向代理的动态混淆的方法,其中,在获得所述WEB混淆动态页面数据的过程中,采用固定转换方式将解析得到的HTML关键表单中的标签元素的值替换所述服务器端的真实变量值,将所述服务器端的真实变量值的所述转换方式保存在所述反向代理中。
4.如权利要求3所述的基于WEB反向代理的动态混淆的方法,在所述反向代理保存所述服务器端的真实变量值的转换方式的同时,接收到含有KEY的进一步HTTP请求,
将收到进一步HTTP请求中的KEY与被翻译的变量值进行运算,翻译出所述服务器端发出的HTTP应答中的真实变量值;其中,
在含有KEY的进一步HTTP请求中,所述KEY由所述反向代理根据所述客户端特征、时间、HTTP请求的信息生成,并保存在所述客户端,在所述客户端进行进一步HTTP请求时,将含有所述KEY的进一步HTTP请求发到所述反向代理。
5.如权利要求1所述的基于WEB反向代理的动态混淆方法,其中,在获得所述WEB混淆动态页面数据的过程中,
在不改变所述WEB动态页面显示与正确执行的前提下,对所述WEB动态页面数据中的HTML代码和嵌入的JavaScript代码进行混淆,获得所述WEB混淆动态页面数据。
6.一种基于WEB反向代理的动态混淆系统,包括:
HTTP请求发起单元,用于将客户端初次发起的HTTP请求通过反向代理转发给服务器端;
HTTP应答发出单元,用于在所述服务器端根据收到的所述HTTP请求发出HTTP应答;其中,所述HTTP应答为WEB静态页面数据;
反向代理转换单元,用于当所述HTTP应答到达所述反向代理时,所述反向代理将所述HTTP应答中的WEB静态页面数据转换为所述WEB混淆动态页面数据;
HTTP应答转发单元,用于在所述反向代理将获得的所述WEB混淆动态页面数据的HTTP应答转发给所述客户端;
其中,所述反向代理转换单元进一步包括:
解析编译单元,用于对所述HTTP应答中的WEB静态页面数据进行解析编译;
动态代理单元,用于将解析得到的HTML关键表单中的标签元素的值与所述服务器端的真实变量值进行替换,获得WEB动态页面数据;
源码混淆单元,用于将所述WEB动态页面数据进行源码混淆,获得WEB混淆动态页面数据。
7.如权利要求6所述的基于WEB反向代理的动态混淆的系统,还包括,
HTTP数据提交请求提交单元,用于在所述客户端将收到的WEB混淆动态页面数据的HTTP数据提交请求提交给所述反向代理;
反向代理翻译单元,用于在所述反向代理将WEB混淆动态页面数据的HTTP数据提交请求翻译为所述服务器端的所述WEB静态页面数据的HTTP数据提交请求,并提交给所述服务器端。
8.如权利要求6所述的基于WEB反向代理的动态混淆的系统,其中,
所述动态代理单元采用固定转换方式将解析得到的HTML关键表单中的标签元素的值替换所述服务器端的真实变量值,将所述服务器端的真实变量值的所述转换方式保存在所述反向代理中。
9.如权利要求8所述的基于WEB反向代理的动态混淆的系统,其中,在所述反向代理保存所述服务器端的真实变量值的转换方式的同时,接收到含有KEY的进一步HTTP请求,
将收到进一步HTTP请求中的KEY与被翻译的变量值进行运算,翻译出所述服务器端发出的HTTP应答中的真实变量值;其中,
在含有KEY的进一步HTTP请求中,所述KEY由所述反向代理根据所述客户端特征、时间、HTTP请求的信息生成,并保存在所述客户端,在所述客户端进行进一步HTTP请求时,将含有所述KEY的进一步HTTP请求发到所述反向代理。
10.如权利要求6所述的基于WEB反向代理的动态混淆的系统,其中,在所述源码混淆单元获得所述WEB混淆动态页面数据的过程中,
在不改变所述WEB动态页面显示与正确执行的前提下,对所述WEB动态页面数据中的HTML代码和嵌入的JavaScript代码进行混淆,获得所述WEB混淆动态页面数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410480220.9A CN104243475B (zh) | 2014-09-18 | 2014-09-18 | 基于web反向代理的动态混淆的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410480220.9A CN104243475B (zh) | 2014-09-18 | 2014-09-18 | 基于web反向代理的动态混淆的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104243475A true CN104243475A (zh) | 2014-12-24 |
CN104243475B CN104243475B (zh) | 2017-10-31 |
Family
ID=52230824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410480220.9A Active CN104243475B (zh) | 2014-09-18 | 2014-09-18 | 基于web反向代理的动态混淆的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104243475B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208074A (zh) * | 2015-08-11 | 2015-12-30 | 广州韵成信息科技有限公司 | 一种基于Web服务器的非对称路由的路径分析方法及装置 |
CN105516131A (zh) * | 2015-12-04 | 2016-04-20 | 珠海市君天电子科技有限公司 | 一种扫描漏洞的方法、装置及电子设备 |
CN106485143A (zh) * | 2015-10-29 | 2017-03-08 | 远江盛邦(北京)网络安全科技股份有限公司 | 基于url多样变化的反扫描检测方法及系统 |
CN108182358A (zh) * | 2017-12-28 | 2018-06-19 | 江苏通付盾信息安全技术有限公司 | 文件保护方法、装置、计算设备及计算机存储介质 |
CN109145535A (zh) * | 2018-08-13 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种前端页面提供方法及装置 |
CN110881044A (zh) * | 2019-12-05 | 2020-03-13 | 北京宏达隆和科技有限公司 | 一种计算机防火墙动态防御安全平台 |
CN113507479A (zh) * | 2021-07-23 | 2021-10-15 | 上海颜硕信息科技有限公司 | 一种针对web代码和数据的网关型加解密透明sdk技术 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080301116A1 (en) * | 2007-05-31 | 2008-12-04 | Microsoft Corporation | Search Ranger System And Double-Funnel Model For Search Spam Analyses and Browser Protection |
CN103150493A (zh) * | 2013-02-28 | 2013-06-12 | 浙江中控技术股份有限公司 | 一种JavaScript代码的混淆方法和装置 |
CN103929498A (zh) * | 2014-05-05 | 2014-07-16 | 北京京东尚科信息技术有限公司 | 处理客户端请求的方法和装置 |
-
2014
- 2014-09-18 CN CN201410480220.9A patent/CN104243475B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080301116A1 (en) * | 2007-05-31 | 2008-12-04 | Microsoft Corporation | Search Ranger System And Double-Funnel Model For Search Spam Analyses and Browser Protection |
CN103150493A (zh) * | 2013-02-28 | 2013-06-12 | 浙江中控技术股份有限公司 | 一种JavaScript代码的混淆方法和装置 |
CN103929498A (zh) * | 2014-05-05 | 2014-07-16 | 北京京东尚科信息技术有限公司 | 处理客户端请求的方法和装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208074A (zh) * | 2015-08-11 | 2015-12-30 | 广州韵成信息科技有限公司 | 一种基于Web服务器的非对称路由的路径分析方法及装置 |
CN105208074B (zh) * | 2015-08-11 | 2018-05-15 | 广州韵成信息科技有限公司 | 一种基于Web服务器的非对称路由的路径分析方法及装置 |
CN106485143A (zh) * | 2015-10-29 | 2017-03-08 | 远江盛邦(北京)网络安全科技股份有限公司 | 基于url多样变化的反扫描检测方法及系统 |
CN105516131A (zh) * | 2015-12-04 | 2016-04-20 | 珠海市君天电子科技有限公司 | 一种扫描漏洞的方法、装置及电子设备 |
CN105516131B (zh) * | 2015-12-04 | 2019-03-26 | 珠海豹趣科技有限公司 | 一种扫描漏洞的方法、装置及电子设备 |
CN108182358A (zh) * | 2017-12-28 | 2018-06-19 | 江苏通付盾信息安全技术有限公司 | 文件保护方法、装置、计算设备及计算机存储介质 |
CN108182358B (zh) * | 2017-12-28 | 2020-09-29 | 江苏通付盾信息安全技术有限公司 | 文件保护方法、装置、计算设备及计算机存储介质 |
CN109145535A (zh) * | 2018-08-13 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种前端页面提供方法及装置 |
CN110881044A (zh) * | 2019-12-05 | 2020-03-13 | 北京宏达隆和科技有限公司 | 一种计算机防火墙动态防御安全平台 |
CN110881044B (zh) * | 2019-12-05 | 2022-08-09 | 北京宏达隆和科技有限公司 | 一种计算机防火墙动态防御安全平台 |
CN113507479A (zh) * | 2021-07-23 | 2021-10-15 | 上海颜硕信息科技有限公司 | 一种针对web代码和数据的网关型加解密透明sdk技术 |
Also Published As
Publication number | Publication date |
---|---|
CN104243475B (zh) | 2017-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104243475B (zh) | 基于web反向代理的动态混淆的方法及系统 | |
US10834101B2 (en) | Applying bytecode obfuscation techniques to programs written in an interpreted language | |
CN106161381B (zh) | 用于去混淆脚本化语言的设备和方法以及计算机可读介质 | |
USRE45139E1 (en) | Method and apparatus for cross-domain communication using designated response processing page | |
CN102831345B (zh) | Sql注入漏洞检测中的注入点提取方法 | |
CN102843437A (zh) | 网页应用的转换方法、装置和网络设备 | |
CN104067561A (zh) | 通过使用web流量信息动态扫描web应用 | |
CN104063401B (zh) | 一种网页样式地址合并的方法和装置 | |
CN107016074B (zh) | 一种网页加载方法及装置 | |
CN102682009A (zh) | 一种用户登录网页的方法及系统 | |
Jabiyev et al. | T-reqs: Http request smuggling with differential fuzzing | |
US8789177B1 (en) | Method and system for automatically obtaining web page content in the presence of redirects | |
CN105635064B (zh) | Csrf攻击检测方法及装置 | |
CN112926061B (zh) | 插件处理方法及装置 | |
CN107835160A (zh) | 基于二维码的第三方用户认证方法 | |
CN113660250B (zh) | 基于web应用防火墙的防御方法、装置、系统和电子装置 | |
Munea et al. | Network protocol fuzz testing for information systems and applications: a survey and taxonomy | |
WO2019013266A1 (ja) | 判定装置、判定方法、および、判定プログラム | |
Ambedkar et al. | A comprehensive inspection of cross site scripting attack | |
US20180316696A1 (en) | Analysis apparatus, analysis method, and analysis program | |
CN104951275B (zh) | 计算机指令数据的处理方法和系统 | |
CN108322420A (zh) | 后门文件的检测方法和装置 | |
CN104732144B (zh) | 一种基于伪协议的远程代码注入漏洞检测方法 | |
CN107147648A (zh) | 资源请求的处理方法、客户端、服务器和系统 | |
CN114500113A (zh) | 一种js防护方法、系统、电子设备及介质 |
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 |