2011-07-08 75 views
2

是否有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> 

他得到的代碼是一個信息 - >代碼修改。 Extremetracking使用相同的方法,但我不知道他們是如何做到的。 這裏是extremetracking

<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> 
+0

你是什麼意思「改變給定的代碼」?通過保存和修改文檔?通過使用調試器如螢火蟲?通過使用書籤? – slaphappy

+0

用戶可以從我的網站複製腳本並將其粘貼到他自己的頁面上。但是,如果他對腳本進行了任何更改,他將收到一條錯誤消息。 – celebo

回答

2

簡答的代碼:是的,絕對有可能的。

當然可以用Javascript觀看您的DOMHTML Markup。你可能只是有某種間隔,檢查某些東西,甚至使用DOM Level 3 Mutation Events,如DOMNodeRemovedDOMSubtreeModified

真正的問題是,它是值得的任何東西NO


任何客戶端代碼都可能被修改,或者被刪除的方式與某人修改您的HTML標記相同。沒有機會在客戶端擁有這種安全性。 您必須將完整的HTML代碼(或可能只是其中的一部分)發送回服務器以進行任何驗證。

+0

是的,很好的答案。謝謝! – celebo

0

是的,這是可能的,例如通過哈希頁面的內容。但是,這是一個非常糟糕的主意。您將添加到代碼中的任何保護系統都可以從頁面中刪除,因爲用戶已經有意修改它。

您試圖實施的是某種軟件保護系統。這些系統在分發二進制文件時值得他們花時間,因爲反彙編和逆向工程很難並需要一些時間。但是,我們在這裏正在討論Javascript,並且閱讀/調試Javascript更容易。人們可以刪除負責保護的部分。

但是,如果你堅持,這是我的解決方案:

  • 使用JavaScript,請閱讀要保護(即使用InnerHTML
  • 使用哈希方法如MD5
  • 頁面內容
  • 將哈希與使用AJAX請求的服務器上的哈希進行比較。
相關問題