Javascript merupakan script yang digunakan cukup banyak dalam pengembangan aplikasi. Padahal javascript merupakan script yang bersifat client-side, yang memungkinkan user untuk melihat isi script secara langsung. Dan hal ini memiliki potensi bahwa user dapat mengetahui alur aplikasi, dan mengetahui data yang dilewatkan.
Salah satu cara untuk mengelabui script javascript yang digunakan dengan teknik obfuscate. Teknik ini sebenarnya juga tersedia untuk bahasa lain.
Tool untuk melakukan obfuscate pada javascript tersedia cukup banyak. Salah satu tool yang dapat anda gunakan secara online ada di
http://dean.edwards.name/packer/
Misal script javascript sederhana adalah
alert("hello");
maka ketika di obfuscate menjadi :
eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c]);return p}('0("1");',2,2,'alert|hello'.split('|'),0,{}))
Contoh script yang lebih banyak lagi :
var a, b; a = “hello “; b = “world!”; function send_msg(a, b) { // alert a and b alert(a +b); } send_msg(a, b);
hasilnya :
eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c]);return p}('3 0,1;0=“4“;1=“5!”;6 2(0,1){7(0+1)}2(0,1);',8,8,'a|b|send_msg|var|hello|world|function|alert'.split('|'),0,{}))
menarik bukan
[image diambil dari http://www.breakingpointsystems.com/resources/blog/javascript-obfuscations-contest/]