iGuard 是采用一个中间发布服务器来进行前端代理的.用同步方式把动态服务器发布的页面传到web服务器.
"水印"产生于发布服务器,然后传输到"web服务器",用web服务器的内嵌模块在接到request时进行水印实时计算,比对.
据说内嵌模块的好处是黑客无法发现iGuard进程,我就纳闷了,黑客都入侵到web服务器了,他不会关掉apache,然后删除你的apache模块?
而它所谓的水印技术其实只能用于静态网页,动态网页用所谓的"sql注入检测"来防范,漏洞比天还大,呵呵,
我就纳闷了,动态网页怎么可能用水印来校验嘛,譬如页面上显示个日期,从数据库里取出来,这个页面分分秒秒在变,iGuard怎么做水印?
分析iGuard的外部功能,可见它根本没做这一点,也没有提到,那是在糊弄外行来着.
要是黑客通过apache的漏洞入侵系统,一直到CMS这一层,直接把CMS数据库改掉,iGuard根本发现不了变化,还是会傻乎乎的同步过去。
本来动态网页就不可能做到真正的水印对比,这iGuard也就是聊胜于无,勉强可以让防火区中web服务器那一块的静态页面得到保护,还卖得这么贵,处处扯虎皮拉大旗,说什么以863项目技术为基础,呵呵,其实是带有欺骗性质的.
如果走纯静态化路线,却存在一个硬伤,那就是无法用后台方式显示动态内容(幸好还有ajax可以救急),因此只适合用于的动态性要求低的门户型网站。
而这样的网站是很有限的,譬如绝大多数网站都会有信箱/搜索/投诉这类互动,因此webdown也面临着iGuard的困难.
静态化这条思路从本质上先天不足,局限性较大。
【2008-8】
补充:htmlunit可以执行js,不过还是无法完全模拟人的操作。