Jei kada nors teko rašyti tikrą projektą, saugumo problemos egzistuoja arba bent jau turėtų būti. Tobulėjant technologijoms, per trumpą laiką galime sukurti nuostabias, galingas, didelio našumo sistemas, tačiau tai taip pat reiškia, kad kenkėjiški žmonės ir technologijos tampa galingesni ir sunkiau įveikiami. Štai kodėl šiandien kuriant sistemas būtina apsisaugoti nuo visų įprastų pažeidžiamumų.
"Angular" pasirūpina dideliu saugumu: ji turi savo kintamą apsaugos sistemą ir dezinfekavimo funkcijas, kurios neleidžia kenkėjiškam kodui veikti jūsų programoje. Kita funkcija yra kodo glaudinimas.
Sumažinimas ir painiava
Kodo glaudinimas yra technika, kuri sumažina šaltinio kodo dydį pašalinant nereikalingus simbolius, tokius kaip tarpai ir komentarai, pagerinant šaltinio kodo įkėlimo našumą. Šis procesas yra įprastas kuriant JavaScript, CSS ir HTML failus ir kažkaip prideda saugumo sluoksnį, užmaskuodamas kodą. Suspaustą kodą labai sunku perskaityti, todėl jis laikomas tam tikru užmaskavimu. Tačiau įrankis gali išspausti kodą, kad jis būtų įskaitomas, o vėliau jį galima pakeisti atvirkštine inžinerija. Čia atsiranda painiava.
Papildant glaudinimą, kodo užmaskavimas yra technika, dėl kurios šaltinio kodą sunku suprasti ir atvirkštinę inžineriją. Jis dažnai naudojamas siekiant apsaugoti intelektinę nuosavybę, užkirsti kelią klastojimui ir atgrasyti nuo atvirkštinės inžinerijos, todėl užpuolikams sunku suprasti kodo logiką ir nustatyti galimus pažeidžiamumus. Jis konvertuoja skaitomą kodą į sudėtingesnes ir neaiškias versijas, nekeičiant jo funkcionalumo. Kodo užmaskavimo įrankiai taip pat gali pridėti negyvo kodo, kad suklaidintų užpuolikus, todėl sunkiau suprasti programinės įrangos kodų bazę.
Na, supainiokime mūsų "Angular" programą, jei ji jums naudinga.
Webpack obfuscator
"Angular" naudoja "Webpack" pakavimo etape ir turi savo numatytuosius nustatymus jūsų kuriamiems moduliams pakuoti. Mes tuo pasinaudosime ir pritaikysime, kaip "Webpack" pakuoja "Angular" programas. Pirmiausia įdiekite šiuos paketus:
javascript-obfuscator: galingas nemokamas JavaScript obfuscator su įvairiomis funkcijomis, skirtomis apsaugoti šaltinio kodą.
tuo tarpu "webpack-obfuscator" naudoja jį kaip papildinį, kad suteiktų "Webpack" funkcionalumą. Galite rasti JavaScript obfuscator kodą čia, ir Webpack obfuscator įskiepiai čia.Hipersaito prisijungimas matomas.
Po to sukurkite custom-webpack.config.js failą su pasirinktine konfigūracija, kurią norime pritaikyti susiejimo proceso metu. Štai paprastas pavyzdys:
Galite pateikti daug skirtingų konfigūracijos parinkčių įskiepiai, webpack-obfuscator tiksliai sureguliuoti supainioti išvesties. Tai paprasčiausias būdas pridėti "debugProtection" prie savo kodo, todėl sunku naudoti konsolę programos kintamiesiems ir funkcijoms sekti.
Pastaba: antrasis WebpackObfuscatorMasyvo parametrai yra failai, kurie neįtraukia užmaskavimo。
Iki šiol nustatėme "Webpack" konfigūraciją. Dabar turime juo naudotis. Mums taip pat reikia kitos priklausomybės:
Tai padės mums integruoti pasirinktinę žiniatinklio paketų kūrimo priemonę su "Angular", kad vis tiek galėtume kurti struktūras naudodami "Angular". Įdiegę paketą, turime tik pakeisti failo angular.json. Ieškokite kūrimo atributo ir įtraukite:
Pakeitę builderfrom į @angular-devkit/build-angular:browser į @angular-builders/custom-webpack:browser, vis tiek galime kurti naršyklę, bet dabar galime įterpti savo pasirinktinę žiniatinklio paketo konfigūraciją. Ypatybė customWebpackConfig nustato nuorodą į failą, kad "Angular" galėtų jį naudoti.
Jei viskas nustatyta teisingai, jūsų kūrimo komandos turėtų veikti gerai, o rezultatas bus paini "Angular" programa!
Trūkumas
Tačiau atkreipkite dėmesį, kad šis metodas turi trūkumų, susijusių su pakuotės dydžiu. Kodo užmaskavimas apsunkina kodo atvirkštinę inžineriją, tačiau kintamųjų deklaravimo būdas naudoja daugiau simbolių, todėl paketo dydis padidėja - beveik priešinga kodo minimizavimo kryptimi.
Viskas. Būtinai naudokite jį tikslingai ir išmokite pašalinti šios technologijos trūkumus!
Originalus:Hipersaito prisijungimas matomas. Nuoroda:Hipersaito prisijungimas matomas. |