阿贾克斯返回javascript进行分析的结果在损失页的内容
-
25-09-2019 - |
题
所以我一直在工作最近在一个脚本来混淆客户代码,用于保护知识产权而不干扰外观的互动得到的页面。本过程如下:
- HTTP请求。要重定(.*) 要parse_request.php
- parse_request.php 创建一个"phpURLParser"类,其类变量是实质上的副本$_SERVER变量
- phpURLParser看起来在所请求的路径,以及有时的主机,引用程序或其他服务器侧信息,以确定如何作出反应。有几个可能的反应
a.所请求的对象。js。css文件。通过该文件的唯压缩机和发送出
b.请求对象的图像或应用程序。通过的文件没有改变
c.所请求的对象包含HTML。代替每ASCII character与其2位数相当于十六和发送以下javascript:
<script type="text/javascript">
var x="~lots of hex~";
var y="";
for(i=0; i<x.length; i+=2){
y += unescape('%'+x.substr(i,2));
}
document.write(y);
</script>
因此该网站是替换由一个很大的hex和一个小型的javascript返回hex原为原有形态。我有这样的一个例子安装在examples.chikachu.com/colorbox/example1 (我没有代码颜色盒子,这是一个免费的jQuery的工具,我选择使用,因为它让我来测试几种不同的javascript功能,并确保他们的所有工作)
现在的问题:
事实证明,这一工作的99%的时间。但是,AJAX使得愤怒。点击一的阿贾克斯例(在"其他内容类型")看起来就像它的重定向到新网页。看着的地址栏或查看的网页源将证明,你还在同一页上,但是。采用的检查件工具,在铬(或萤火虫在火狐)将揭示的内容的网页已完全替换为内容的AJAX请求。
如果我修改parse_request.php 稍允许所请求的文件由阿贾克斯是通过一劫,一切工作。没有问题。因此,对于某些原因我的脚本,这将替换串的六角与其有意义HTML的对应方是复盖整个网站,而不是的很好插入本身的范围内 <div> 对象。
基本上这里的预期非模糊HTML:
<html>
<head>
...
</head>
<body>
<div id="colorbox">
<INSERT AJAX HERE>
</div>
...
</body>
</html>
只有AJAX模糊,我期望下:
<html>
<head>
...
</head>
<body>
<div id="colorbox">
<script type="text/javascript">
var x="asdfasdfasdfasdf";
var y="";
for(i=0; i<x.length; i+=2){
y += unescape('%'+x.substr(i,2));
}
document.write(y);
</script>
</div>
...
</body>
</html>
我希望,该文件。write()线在这里会写y在的位置javascript(内 <div>).如果我错了,不是这样的文件。write()工作,我仍然期待它来写y结束时的文件。相反,整个文件取代。这是为什么,以及什么是我的解决方案吗?
解决方案
试试这样的事情:
<html>
<head>
...
</head>
<body>
<div id="colorbox">
<div id="MYAJAXCONTENT">
</div>
<INSERT AJAX HERE>
</div>
...
</body>
</html>
<html>
<head>
...
</head>
<body>
<div id="colorbox">
<script type="text/javascript">
var x="asdfasdfasdfasdf";
var y="";
for(i=0; i<x.length; i+=2){
y += unescape('%'+x.substr(i,2));
}
document.getElementById('MYAJAXCONTENT').innerHTML = y;
// for the jQuery psychos out there
// $('#MYAJAXCONTENT').html(y);
</script>
</div>
...
</body>
</html>
其他提示
回答你的最后一个问题:叫
文件。写信('my_precious_html_code');
将附加或替代文本的页上取决于当时它被称为(之前或之后加载事件)。你不应该利用它 任何 脚本。了解更多关于它在这里: http://javascript.crockford.com/script.html
一般的回答:混淆HTML代码没有任何意义。就像保护图像通过禁止右键在后期90.我花了不到3秒的"裂缝"您混乱的代码,并得到精美的格式HTML。还有你的网站是呈现在 怪癖模式 这可能是有些东西你不想要。