论文部分内容阅读
随着WEB2.0概念的提出,AJAX技术已经成为网页信息请求的重要方式,由于AJAX是基于异步加载,请求数据时不必重新加载整个网页,浏览器也不会像同步请求那样一直阻塞直到请求结束,等到请求的数据返回时再根据执行结果对网页做动态调整,这样显著的提高了网页的加载速度。但是AJAX的请求大都通过在浏览器中执行JavaScript代码动态生成,传统的代理都是通过对静态可识别的完整URL替换达到代理目的,对于这些动态生成的地址无法识别,在网页的源代码中无法找到请求的URL地址,即无法对异步请求进行代理。另外,目前代理中的WEB安全检测功能虽然可以给用户提供一个更安全的上网环境,但是传统的安全检测多是以文件为单位进行扫描,这无疑会时增加处理时间,尤其当用户通过代理需要请求较大的文件时,由于文件扫描的速度慢,可能引起请求超时客户端收到超时错误信息的情况。本文针对传统代理无法代理异步AJAX请求以及文件扫描处理速度过慢的问题进行了有效改进。 对于AJAX请求的代理,本文提出了以JavaScript原型为基础重写AJAX请求的方案。通过对AJAX的核心对象XMLHttpRequest对象内部封装的请求方法进行重写,可以在无法识别请求URL的前提下实现对其的修改,以此达到代理目的。不同于以往代理服务的原理,对于AJAX请求地址的替换不是在代理程序中进行的,而是在浏览器执行时触发。通过实验表明该方案达到了预期的效果,能够对AJAX请求地址进行有效替换,进而完整代理。 针对文件形式的安全检测速度过慢的问题,本文提出了以分组形式的数据扫描方式,扫描程序在接收到数据后不必等到全部接受完再生成文件进行扫描,而是在收到部分数据后即开始扫描,实现了扫描和接收的并发,实验证明这种方式显著的提高了恶意代码检测的处理速度。 最后本文结合上述两种技术的研究,设计实现了一种支持AJAX的WEB安全网关代理系统,包括系统模块的设计以及系统工作流程,最后通过实验表明系统的AJAX代理和基于分组扫描的安全检测在功能和性能上都达到了预期目的。