基于WEB反向代理的动态混淆的方法及系统技术方案

技术编号:10804066 阅读:155 留言:0更新日期:2014-12-24 11:15
本发明专利技术提供一种基于WEB反向代理的动态混淆的方法及系统,其中的方法包括:客户端初次发起的HTTP请求通过反向代理转发给服务器端;服务器端根据收到的HTTP请求发出HTTP应答;其中,HTTP应答为WEB静态页面数据;当HTTP应答到达反向代理时,反向代理将HTTP应答中的WEB静态页面数据转换为WEB混淆动态页面数据;反向代理将获得的WEB混淆动态页面数据的HTTP应答转发给客户端,其转换过程包括:对HTTP应答中的WEB静态页面数据进行解析编译、变量代理和源码混淆,获得WEB混淆动态页面数据。利用本发明专利技术,能够解决WEB客户端容易被恶意分析、扫描漏洞、并利用漏洞发起攻击的WEB服务的安全性问题。

【技术实现步骤摘要】
基于WEB反向代理的动态混淆的方法及系统
本专利技术涉及移动浏览器
,更为具体地,涉及一种基于WEB反向代理的动态混淆的方法及系统。
技术介绍
在WEB服务高速发展的同时,WEB安全问题也已日益凸显。由于承载WEB服务的是HTML、JavaScript等文本形式的明文语言,相当于在WEB客户端可以看到页面源代码,也就容易被恶意分析,扫描漏洞,并利用漏洞发起攻击。WEB服务指HTTP服务,即基于HTML的网页服务。HTTP的请求通过传输协议(TCP/UDP)发出,HTTP服务器通过在固定端口提供的WEB服务来完成对HTTP请求的响应。通过一个简单的登陆页面来说明HTTP访问的基本流程和常见命令,图1示出了HTTP一次请求与应答的流程。如图1,服务器端根据客户端发出的HTTP请求做出相对应的响应。客户端为Browser浏览器,整个登陆的交互过程可以分为五步,分别说明如下:Step1:客户端浏览器发出HTTP请求。如图1中请求为GET一个名为index的页面。该页面提供用户输入用户名和密码。Step2:HTTP服务器接收到请求数据,并对该请求应答index.html的页面。如图1中所示,应答数据分为两个部分,HTTP协议头,其包含(请求或)应答状态,以及HTTP数据部分,即HTML页面代码。其中协议返回的200OK表明HTTPServer响应正确,其具体含义见HTTP协议RFC2616Step3:客户端浏览器收到HTML页面数据,并对页面数据进行解析执行。浏览器根据解析执行效果显示HTTP页面界面。可以看到页面中的form表单中的输入用户名和密码的input对话框的名称分别为“username”和“passwd”。Step4:在客户端浏览器界面对应的输入框中,输入用户名和密码,本例中输入的用户名为test,密码为test123,并点击“login”按钮。浏览器对服务器端发出POST请求。其中HTTP数据部分,即提交的数据内容为登陆信息:username=test,passwd=test123。(HTTP服务的密码不推荐用明文传输,应该使用类似digest的方式传输,为了说明问题使用最简单的方式,即明文传输密码)。Step5:服务器端收到客户端浏览器发出的POST请求,并执行对应的登陆信息验证,如果登陆成功,则返回正确登陆的页面。客户端收到该页面后解析HTML并显示界面。由于客户端浏览器获得的都是格式清晰且静态的页面内容,所以可以通过对页面内容和浏览器发出的数据包进行分析,从而写出可以被HTTP服务器响应的脚本,以完成浏览器的一些功能。并且诸如网络爬虫、网络扫描器等这类网络工具,都可以自动对静态页面内容进行分析,甚至直接计算出页面存在的漏洞以及可用的渗透或攻击方式。很多WEB安全问题也正是基于此。脚本具有自动执行、资源消耗低、灵活调用等特点,容易被攻击者用来进行WEB渗透和攻击。为了说明静态的标准格式页面数据,容易被攻击的事实,图2示出了使用简单的linuxshell脚本来说明脚本发出页面请求的流程。如图2所示,使用linux命令curl来对服务器发出HTTP登陆请求,且无需获得登陆的页面。其中curl命令执行方式,第一个参数为POST的对象URL,第二个-d参数为POST的数据内容。图2中模仿浏览器输入的用户名和密码发出登陆请求信息:username=test且passwd=test123。具体执行流程如图2所示,脚本发出了与浏览器相同的登陆请求内容,HTTP服务器对其做出了响应,并返回登陆成功的页面。对比图1与图2可以看出脚本登陆的流程更简便,脚本可以任意构造HTTP请求信息,可以模拟任何HTTP客户端发出请求,并且脚本消耗很低的资源即可完成浏览器的功能。上述图2为简单HTTP登陆的例子;为了进一步说明静态的标准格式页面数据,容易被攻击的事实,图3示出了模拟用暴力穷举的方式破解登陆密码的流程;如图3所示,使用linuxshell脚本模拟用暴力穷举的方式破解登陆密码。如图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混淆动态页面数据的过程中,采用固定转换方式将解析得到的HTML关键表单中的标签元素的值进行替换,并将转换方式保存在反向代理中;在反向代理保存转换方式的同时,接收到含有KEY的进一步HTTP请求,将收到进一步HTTP请求中的KEY与被翻译的变量值进行运算,翻译出服务器端发出的HTTP应答中的真实变量值;其中,在含有KEY的进一步HTTP请求中,KEY由反向代理根据客户端特征、时间、HTTP请求的信息生成,并保存在客户端,在客户端进行进一步HTTP请求时,将含有KEY的进一步HTTP请求发到反向代理。此外,优选的方案是,在反向代理将获得的WEB混淆动态页面数据的HTTP应答转发给客户端之后,基于WEB反向代理的动态混淆的方法还包括,客户端将收到的WEB混淆动态页面数据的HTTP数据提交请求提交给反向代理;反向代理将WEB混淆动态页面数据的HTTP数据提交请求翻译为服务器端的WEB静态页面数据的HTTP数据提交请求,并提交给服务器端。此外,优选的方案是,在获得WEB混淆动态页面数据的过程中,在不改变WEB动态页面显示与正确执行的前提下,对WEB动态页面数据中的HTML代码和嵌入的JavaScript代码进行混淆,获得WEB混淆动态页面数据。另一方面,本专利技术还提供一种基于WEB反向代理的动态混淆系统,包括:HTTP请求发起单元,用于将客户端初次发起的本文档来自技高网
...
基于WEB反向代理的动态混淆的方法及系统

【技术保护点】
一种基于WEB反向代理的动态混淆的方法,包括:将客户端初次发起的HTTP请求通过反向代理转发给服务器端;所述服务器端根据收到的所述HTTP请求发出HTTP应答;其中,所述HTTP应答为WEB静态页面数据;当所述HTTP应答到达所述反向代理时,所述反向代理将所述HTTP应答中的WEB静态页面数据转换为WEB混淆动态页面数据;所述反向代理将获得的所述WEB混淆动态页面数据的HTTP应答转发给所述客户端;其中,所述反向代理将所述HTTP应答中的WEB静态页面数据转换为WEB混淆动态页面数据的过程包括:对所述HTTP应答中的WEB静态页面数据进行解析编译;将解析得到的HTML关键表单中的标签元素的值与所述服务器端的真实变量值进行替换,获得WEB动态页面数据;将所述WEB动态页面数据进行源码混淆,获得WEB混淆动态页面数据。

【技术特征摘要】
1.一种基于WEB反向代理的动态混淆的方法,包括:将客户端初次发起的HTTP请求通过反向代理转发给服务器端;所述服务器端根据收到的所述HTTP请求发出HTTP应答;其中,所述HTTP应答为WEB静态页面数据;当所述HTTP应答到达所述反向代理时,所述反向代理将所述HTTP应答中的WEB静态页面数据转换为WEB混淆动态页面数据;所述反向代理将获得的所述WEB混淆动态页面数据的HTTP应答转发给所述客户端;其中,所述反向代理将所述HTTP应答中的WEB静态页面数据转换为WEB混淆动态页面数据的过程包括:对所述HTTP应答中的WEB静态页面数据进行解析编译;将解析得到的HTML关键表单中的标签元素的值进行替换,获得WEB动态页面数据;将所述WEB动态页面数据进行源码混淆,获得WEB混淆动态页面数据;其中,在获得所述WEB混淆动态页面数据的过程中,采用固定转换方式将解析得到的HTML关键表单中的标签元素的值进行替换,并将所述转换方式保存在所述反向代理中;在所述反向代理保存所述转换方式的同时,接收到含有KEY的进一步HTTP请求,将收到进一步HTTP请求中的KEY与被翻译的变量值进行运算,翻译出所述服务器端发出的HTTP应答中的真实变量值;其中,在含有KEY的进一步HTTP请求中,所述KEY由所述反向代理根据所述客户端特征、时间、HTTP请求的信息生成,并保存在所述客户端,在所述客户端进行进一步HTTP请求时,将含有所述KEY的进一步HTTP请求发到所述反向代理。2.如权利要求1所述的基于WEB反向代理的动态混淆的方法,在所述反向代理将获得的所述WEB混淆动态页面数据的HTTP应答转发给所述客户端之后,还包括,所述客户端将收到的WEB混淆动态页面数据的HTTP数据提交请求提交给所述反向代理;所述反向代理将WEB混淆动态页面数据的HTTP数据提交请求翻译为所述服务器端的所述WEB静态页面数据的HTTP数据提交请求,并提交给所述服务器端。3.如权利要求1所述的基于WEB反向代理的动态混淆方法,其中,在获得所述WEB混淆动态页面数据的过程中,在不改变所述WEB动态页面显示与正确执行的前提下,对所述WEB动态页面数据中的HTML代码和嵌入的JavaScript代码进行混淆,获得所述WEB混淆动态页面数据。4.一种基于WEB反向代理的动态混...

【专利技术属性】
技术研发人员:郝振华
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1