所以我一直在一个脚本来混淆客户端代码保护知识产权,而不与结果页面的交互性的外观干扰最近工作损失结果。过程如下: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(
+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