Javascript:检查用户是否对代码段进行了更改

时间:2011-07-08 07:45:59

标签: php javascript

是否有一个javascript方法来检查用户是否更改了给定的代码? 例如:

<div id="mycodestyle">
<a href="http://www.example.com"><img src="image.gif"></a>
</div>

如果用户现在更改代码,如

<div id="mycodestyle">
<img src="image.gif">
</div>

他得到了一条消息 - &gt;代码已修改。极端追踪使用相同的方法,但我不知道他们是如何做到的。 这是极端追踪的代码

<div id="eXTReMe">
<a href="http://extremetracking.com/open?login=example">

<img src="http://t1.extreme-dm.com/i.gif" style="border: 0;"
height="38" width="41" id="EXim" alt="eXTReMe Tracker" /></a>
<script type="text/javascript"><!--
EXref="";
top.document.referrer?EXref=top.document.referrer:EXref=document.referrer;
//--></script>
<script type="text/javascript"><!--
var EXlogin='example' // Login
var EXvsrv='s10' // VServer
EXs=screen;
EXw=EXs.width;
navigator.appName!="Netscape"?EXb=EXs.colorDepth:EXb=EXs.pixelDepth;
EXsrc="src";
navigator.javaEnabled()==1?EXjv="y":EXjv="n";
EXd=document;
EXw?"":EXw="na";
EXb?"":EXb="na";
EXref?EXref=EXref:EXref=EXd.referrer;
EXd.write("<img "+EXsrc+"=http://e1.extreme-dm.com",
"/"+EXvsrv+".g?login="+EXlogin+"&amp;",
"jv="+EXjv+"&amp;j=y&amp;srw="+EXw+"&amp;srb="+EXb+"&amp;",
"l="+escape(EXref)+" height=1 width=1>");
//--></script>
<noscript><div id="neXTReMe"><img height="1" width="1" alt=""
src="http://e1.extreme-dm.com/s10.g?login=example&amp;j=n&amp;jv=n" />
</div></noscript>

</div>

2 个答案:

答案 0 :(得分:2)

简短回答:是的,绝对有可能。

当然可以使用Javascript观看您的DOMHTML Markup。您可以使用某种间隔检查某些内容,甚至可以使用DOM Level 3 Mutation EventsDOMNodeRemovedDOMSubtreeModified

真正的问题是,值得吗


任何Clientside代码都可以修改或删除,就像有人修改HTML标记一样。只有在客户端才有这种安全性的机会是零。 您必须将完整的HTML代码(或可能只是其中的一部分)发送回服务器以进行任何类型的验证。

答案 1 :(得分:0)

是的,这是可能的,例如通过散列页面的内容。但是,这是一个非常糟糕的主意。您将添加到代码中的任何保护系统都可以从页面中删除,因为用户已经有意修改它。

您尝试实施的是某种软件保护系统。当您分发二进制文件时,这些系统值得花时间,因为反汇编和逆向工程很难并且需要一些时间。但是,我们在这里谈论Javascript,阅读/调试Javascript更容易。人们可以删除负责保护的部分。

但是,如果你坚持,这是我的解决方案:

  • 使用javascript,阅读您要保护的页面内容(即使用InnerHTML
  • 使用像MD5这样的哈希方法
  • 使用AJAX请求将哈希值与服务器上的哈希值进行比较。