ajax 请求返回来的是页面,AJAX返回JavaScript来解析在页面内容

所以我一直在一个脚本来混淆客户端代码保护知识产权,而不与结果页面的交互性的外观干扰最近工作损失结果。过程如下:AJAX返回JavaScript来解析在页面内容

HTTP请求时,重定向的.htaccess到parse_request.php

parse_request.php创建它的类变量基本上是$ _ SERVER的副本“phpURLParser”级(*)。变量

phpURLParser着眼于请求的路径,有时主机,引用者,或者其他的服务器端信息,以决定如何反应。有几种可能的响应

一个。请求的对象是.js或.css文件。传递文件的YUI压缩机和发送输出

湾请求的对象是一个图像或应用程序。传递文件没有变化

℃。请求的对象包含HTML。其2位十六进制等效替换每个ASCII字符和发送以下的javascript:

var x="~lots of hex~";

var y="";

for(i=0; i

y += unescape('%'+x.substr(i,2));

}

document.write(y);

所以该网站是由很多六角和小JavaScript来六角恢复到原来的形式所取代。我在examples.chikachu.com/colorbox/example1上有一个设置示例(我没有编码ColorBox,它是一个免费的jQuery工具,我选择使用它,因为它允许我测试几种不同的JavaScript功能并确保它们全部工作)

现在的问题:

事实证明,这个工程的99%的时间。但AJAX使它生气。点击其中一个AJAX示例(位于“其他内容类型”下)将看起来像将您重定向到一个新页面。但是,查看地址栏或查看页面源将证明您仍处于同一页面上。使用Chrome中的Inspect Element工具(或Firefox中的Firebug)将显示网页的内容完全被AJAX请求的内容所取代。

如果我修改parse_request.php稍微允许通过AJAX请求的文件通过一劫通过,一切正常。没问题。所以出于某种原因,我的脚本用其有意义的HTML替换字符串的十六进制是覆盖整个网站,而不是很好地将自己插入

对象的范围内。

从本质上讲,这里的期望的非混淆的HTML:

...

...

仅对于AJAX混淆,我希望以下内容:

...

var x="asdfasdfasdfasdf";

var y="";

for(i=0; i

y += unescape('%'+x.substr(i,2));

}

document.write(y);

...

我期望document.write()的线,这里将在javascript的位置写下y(

)。如果我错了,那不是document.write()的工作方式,我仍然希望它在文档的末尾写上y。相反,整个文档被替换为y。为什么会这样,我的解决方案是什么?

+0

错误建立一个数据库连接 –

2010-09-28 03:45:49

+0

我认为'document.write()的'在时间点写,这是事件事件驱动,它的输出基于页面加载是不规则的。它可能会打破你的整个页面,你应该考虑使用'innerHTML'或'textNode'来插入特殊文本。但是,如果你想执行,我想你会需要document.write,因为innerHTML不允许这样做,至少对于外部脚本来说。 –

2010-09-28 03:49:32

+0

还应rescope计数器变量并缓存字符串'的长度为(I = 0; I vol7ron

2010-09-28 03:55:06

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值