JavaScript er et moderne programmeringssprog, der skaber stort og dynamisk indhold på hjemmesiden. Interessant nok fungerer det efter princippet om enkelttråd. Det betyder, at du kun kan udføre én handling ad gangen. Objekter kan laves direkte, og variabler har ingen faste statiske typer.
JavaScript er nemt for mange webudviklere, og dets applikationskode kan nås af brugere og alle. Det er den mest udfordrende del af at bruge JavaScript for webstedsudviklere. På denne måde kan mange angribere nemt få adgang til og udnytte webstedskode og datasårbarheder, der kan skade webstedet og virksomheden.
For at overvinde eller gemme den kode, der genereres af JavaScript, anvender udviklere en teknik kaldet JavaScript Obfuscation. I denne artikel vil du udforske JavaScript Obfuscator, hvordan du kan beskytte og gemme JS-kode og vigtigheden af JS obfuscator.
Hvad er JavaScript-sløring?
Processen til at sikre kode, hvor udviklere ændrer eller modificerer kernekoden til en problematisk form, der ikke let kan forstås af mennesker, samtidig med at den sikrer korrekt udførelse af koden. I modsætning til kryptering (som kræver en nøgle for at afkode den ændrede kode), kræver sløring ikke nogen nøgle for at omstrukturere kernekoden.
Hovedformålet med denne proces er at forhindre eller stoppe uautoriseret adgang, reverse engineering og tyveri af intellektuel ejendom.
Hvorfor bruge JavaScript Obfuscation?
Sløring kan tjene forskellige formål og fordele, som det bruges til, hvoraf nogle er angivet nedenfor:
1-Sikkerhed mod tyveri
Sløring beskytter din kode og følsomme oplysninger mod cybertyve og angribere, hvilket muliggør privatlivets fred i dit projekt.
Forebyggelse af 2-temperament
Slørede koder kan gøre det svært for hackere at fejlfinde dem, så de kan bruges til ondsindede formål.
3-Bevarelse af forretningsinteresser
Sløring vil sikre en konkurrencefordel ved at sikre de unikke implementeringer af ens taktik og strategier.
4-Beskyttelse af følsomme oplysninger
Nogle koder indeholder følsomme oplysninger, nøgler eller logik, der er vigtige for driften, men som ikke bør eksponeres for offentligheden, hvilket forhindrer lækage af dine oplysninger og hjælper med at få oplysningerne kun til dig.
Følgende er et eksempel på en JavaScript-sløring:
Kernekoden for ordet Hej i JS ser sådan ud:
funktion greet(navn) {
returner "Hej, " + navn + "!";
}
Funktionen af sløring konverterer følgende kode til dette:
funktion _0x2c56(_0x1a73){return 'Hej, '+_0x1a73+'!';}
Begge koder har samme betydning, og deres output resulterer ikke i nogen forskel, men stavefejlsforskellen resulterer i betydelig beskyttelse af koden. Komplekse ting er altid sværere at få adgang til.
Hvordan virker JavaScript-sløring?
Funktionen af JS-sløring er vist nedenfor
Hele processen følger nogle trin som f.eks .
Omdøbning af 1-variabel
Her erstattes beskrivende variabelnavne med meningsløse strenge (f.eks. bliver brugernavn a1b2c3)
Et eksempel er givet nedenfor for at forstå bedre
Oprindelig kode:
funktion calculateTotal(pris, moms) {
returpris + (pris * moms);
}
Denne kode kan se sådan ud efter sløring
Sløret kode:
funktion _0x45a1(x,y){retur x+(x*y);}
2-strengs og talkodning
Det er også kendt som strengkryptering. Det er en proces, hvor følsomme data såsom URL'er eller API-nøgler kodes med strenge i koden. Følgende er et eksempel på strengkryptering:
Oprindelig kode:
const apiKey = "ABC123";
Den slørede version er givet nedenfor.
Sløret kode:
const _0x3d2a = "\x41\x42\x43\x31\x32\x33";
3-Kontrol flowudfladning
I kort form kendt som kodeudligning. Komplekse kodestrukturer forenkles, kommentarer fjernes for at reducere læsbarheden så meget som muligt.
Oprindelig kode:
En simpel kode kan se sådan ud
funktionskontrolAdgang(bruger) {
hvis (user.role === "admin") returnerer sand;
ellers returnerer falsk;
}
Sløret kode:
funktion _0x1a2b(_0x3c4d) {
return _0x3c4d["\x72\x6f\x6c\x65"] === "\x61\x64\x6d\x69\x6e" ? !0x0 : !0x1;
}
Læsbarheden er stærkt reduceret, som det fremgår af forskellen mellem de to koder, der er beskrevet ovenfor.
Indsættelse af 4-død kode
Det svarer til kodeudjævning og reguleringsflowændring. Det er tilføjelsen af meningsløse kodestykker til den originale kode for at gøre den mindre læsbar.
funktion validateInput(input) {
hvis (input.length > 5) returnerer true;
ellers returnerer falsk;
// Død kode nedenfor
const x = 10;
console.log("Dette kører aldrig");
}
Versionen af indsættelse af død kode (Obfuscated) af denne kode ser sådan ud :
funktion validateInput(input) {
hvis (input.length > 5) {
// Død kode, der ikke gør noget nyttigt
const ubrugtVar = Math.random() * 100;
console.log("Dette er en del af den døde kode: ", ubrugtVar);
returner sandt;
} else {
// Mere død kode nedenfor
let fakeCondition = input.includes("secret");
if (fakeCondition) {
console.log("Denne betingelse er falsk og irrelevant");
}
returner falsk;
}
// Utilgængelig død kode
const x = 10;
const y = 20;
console.log("Dette vil aldrig blive udført, men forvirrer angribere: ", x + y);
}
5. Anti-debugging teknikker
Anti-debugging-teknikken i JS er unik og involverer debugger-sætninger, konsoldetektion og timing-angreb for at forhindre kode og debugging.
setInterval(funktion(){
if (typeof console._commandLineAPI !== 'udefineret') {
alert("Debugger fundet!");
window.location.href = "om:blank";
}
}, 1000);
Den samme kode, når den ændres til en sløret version ved hjælp af JS-sløringsværktøjet. Det er blevet sværere at forstå og analysere ved at bruge et ekstra lag af anti-debugging.
Sløret kode:
(funktion () {
var _0x3c87 = ['_commandLineAPI', 'udefineret', 'om:blank'];
(funktion (_0x4d1b99, _0x1ea782) {
var _0x223b1b = funktion (_0x234219) {
mens (--_0x234219) {
_0x4d1b99['push'](_0x4d1b99['shift']());
}
};
_0x223b1b(++_0x1ea782);
}(_0x3c87, 0x18f));
var _0x4a68 = funktion (_0x4d1b99, _0x1ea782) {
_0x4d1b99 = _0x4d1b99 - 0x0;
var _0x223b1b = _0x3c87[_0x4d1b99];
vende tilbage _0x223b1b;
};
setInterval(funktion () {
if (type konsol[_0x4a68('0x0')] !== _0x4a68('0x1')) {
alert ('Debugger fundet!');
window['location']['href'] = _0x4a68('0x2');
}
}, 0x3e8);
})();
Dette var blot nogle af de enkle trin (teknikker) til, hvordan et ligetil og essentielt stykke kode kan konverteres til den højeste sværhedsgrad, hvilket får det til at ligne en meget avanceret og kompleks kode ved hjælp af et sløringsværktøj.
Øv dig i forslag til sløring i JavaScript
For den bedste praksis for sløring i JS er der flere forslag til at omsætte det i praksis.
Valg af pålidelige værktøjer
Betjening af pålidelige obfuscatorer som JavaScript Obfuscator eller UglifyJS for at fjerne robuste transformationer.
2-Sløring med andre sikkerhedsforanstaltninger
Obfuskering er opstartslaget af forsvar. Parring af det med forskellige teknikker som streng test, sikker kodningspraksis osv. kan tilføje en ubrydelig beskyttelse til dit projekt.
3-kode dokumentation
Gem en klar version af den originale kode og charter til fremtidig fejlfinding. Det giver dig adgang til din originale kode, hvilket gør ændringsprocessen lettere.
4-Aktivitet
Hold dig opdateret om nye trusler, og tilpas din sløringstaktik i overensstemmelse hermed.
Etiske overvejelser
Ideen om sløring kom med en følelse af etisk beskyttelse af dine projekter mod cyberangreb. Således kan misbrug af det føre til dårlige omstændigheder, såsom:
1-Implementering af malware
Cyberkriminelle bruger ofte sløringsteknikken til at skjule deres farlige scripts eller straffeattester.
2-Vildledende praksis
Sløring kan også invadere ens privatliv, spore scripts osv. Det er altid vigtigt at overveje den korrekte brug af sådanne teknikker. At opretholde balancen mellem sådanne ting er det første skridt til at udføre sløring.
Begrænsninger ved sløring
Selvom det er meget gavnligt at bruge sløring til at beskytte din kode og projekter, er det ikke idiotsikkert. Det har nogle begrænsninger, der kan irritere dig, mens du bruger det. Nogle af de uopfyldte mangler diskuteres nedenfor:
1-Effekt af ydeevne:
Hvis din kode er sløret mere end nødvendigt, vil det påvirke din kodes runtime negativt, især hvis der anvendes dynamisk generering eller redundante kodemetoder.
2-Mangel på absolut sikkerhed:
Eksperthackere eller angribere kan bruge sløring på din allerede slørede kode, hvilket i sidste ende ikke efterlader nogen beskyttelse af din kode.
3-Fejlfinding udfordringer:
Den slørede kode er altid vanskelig at fejlfinde, vedligeholde eller udvikle på grund af tilføjelsen af unødvendige linjer, der bruges til dens beskyttelse. Det er endnu sværere for programmører, der ikke var en del af udviklingsteamet af den originale kode og slørede kode.
4-Kompatibilitetsproblemer:
Specifikke sløringsteknikker er ikke tilgængelige på tværs af alle browsere eller miljøer, hvilket øger chancerne for tekniske problemer i output eller funktion af kode.
Konklusion
JavaScript-sløring er et kraftfuldt og gavnligt værktøj til at beskytte ens kode mod tyveri, hackere, angribere, manipulation og reverse engineering. Selvom det er et beskyttelsesskjold for dine følsomme oplysninger og intellektuelle ejendom, der er gemt på din computer ved kodning, er det ikke en permanent eller uovervindelig løsning på sikkerhed.
Bygherren må ikke kun forlade sig på sløring. Ved at forstå og få nok viden om dens teknikker, fordele og begrænsninger kan udviklere gøre den mere værdifuld og effektiv for den ultimative beskyttelse af din kode.
Selvom det har nogle fordele, begrænsninger og alt, hvad en proces eller teknik har brug for for at eksistere, ligger dets sande styrke i det faktum, at det er en del af en lagdelt forsvarsstrategi; Du skal øve dig nok til at gøre det mere effektivt, nyttigt og produktivt for dig end nogen anden. Det hjælper med at sikre din JavaScript-kodes integritet, fortrolighed og pålidelighed i det stadigt udviklende digitale landskab.
Kort sagt er det et værktøj til at hjælpe dig med at bevare dit privatliv og motiverer dig til at tænke på mere effektive måder at beskytte dine oplysninger på.
For flere værktøjer til at optimere din webudvikling, se:
Ofte stillede spørgsmål
Hvad er JavaScript-sløring?
Det er en teknik, hvormed en programmør tilføjer sikkerhed til sit projekt. Det er en meget gavnlig teknik, der bruges af programmører til at komplicere din kode mod tyveri, angribere, programmører, hackere.
Hvordan fungerer sløring?
Obfuskering fungerer ved forsvarslagsstrategi ved at tilføje meningsløse kodelinjer i din originale Can-kode for at gøre den mindre læsbar for andre og dermed tilføje et lag af privatliv.
JavaScript Obfuskation vendes?
Nej, JS-sløringen kan vendes. Når koden er sløret, kan den ikke returneres til sin oprindelige form. Det er en envejsproces. Det anbefales altid at opbevare en kopi af din originale kode.
For flere sikkerhedsværktøjer, besøg UrwaTools sikkerhedssektion.