Jak ochránit JS před kopírováním

Zdroj: SOOM.cz [ISSN 1804-7270]
Autor: mzk
Datum: 25.11.2006
Hodnocení/Hlasovalo: 0/0

Existuje minimalně jeden způsob, jak zajistit, aby nikdo nezneužil vámi napsaný kód v javascriptu.

A ten způsob se jmenuje obfuskace kódu. V principu jde o techniku, kdy program analyzuje váš kód v javascriptu a převede ho do formy, kterou v podstatě nelze přepsat.

Např. máte skript (skript je ze stránky Jasob)


//------------------------------------------------------
// Calculate salary for each employee in "aEmployees".
// "aEmployees" is array of "Employee" objects.
//------------------------------------------------------
function CalculateSalary(aEmployees)
{
   var nEmpIndex = 0;
   while (nEmpIndex < aEmployees.length)
   {
      var oEmployee = aEmployees[nEmpIndex];
      oEmployee.fSalary = CalculateBaseSalary(oEmployee.nType,
                                              oEmployee.nWorkingHours);
      if (oEmployee.bBonusAllowed == true)
      {
         oEmployee.fBonus = CalculateBonusSalary(oEmployee.nType,
                                                 oEmployee.nWorkingHours,
                                                 oEmployee.fSalary);
      }
      else
      {
         oEmployee.fBonus = 0;
      }
      oEmployee.sSalaryColor = GetSalaryColor(oEmployee.fSalary +
                                              oEmployee.fBonus);
      nEmpIndex++;
   }
}

a program pro obfuskaci kódu ho převede na


function c(g){var m=0;while(mvar r=g[m];r.l=d(r.n,r.o);
if(r.j==true){
r.k=e(r.n,r.o,r.l);}else{r.k=0;}r.t=f(r.l+r.k);m++;}}

Tento kód byste přepisovali už velmi obtížně a při věších skriptech je to prakticky nemožné.

Výborná je také úspora místa. Zatímco kód v prvním případě měl něco kolem 1000 bytes, po obfuskaci je to jen 133 bytes.

Programů pro obfuskaci kódu je velké množství, já vám mohu doporučit Jasob.