Ja jums kādreiz ir nācies rakstīt reālu projektu, drošības bažas pastāv - vai vismaz tām vajadzētu būt. Attīstoties tehnoloģijām, mēs īsā laikā varam uzrakstīt pārsteidzošas, jaudīgas, augstas veiktspējas sistēmas, bet tas nozīmē arī to, ka ļaunprātīgi cilvēki un tehnoloģijas kļūst jaudīgākas un grūtāk pārvaramas. Tāpēc, izstrādājot sistēmas, šodien ir svarīgi aizsargāt pret visām izplatītākajām ievainojamībām.
Angular rūpējas par lielu drošību: tai ir sava mainīgā aizsardzības sistēma un sanitizācijas funkcijas, kas novērš ļaunprātīga koda darbību jūsu lietotnē. Vēl viena funkcija ir koda saspiešana.
Minimizācija un neskaidrības
Koda saspiešana ir paņēmiens, kas samazina avota koda lielumu, noņemot nevajadzīgās rakstzīmes, piemēram, atstarpes un komentārus, uzlabojot avota koda ielādes veiktspēju. Šis process ir izplatīts JavaScript, CSS un HTML failu tīmekļa izstrādē, un tas kaut kādā veidā pievieno drošības slāni, slēpjot kodu. Saspiesto kodu ir ļoti grūti lasīt, tāpēc to uzskata par sava veida apslēpšanu. Tomēr rīks var atspiest kodu, lai padarītu to lasāmu, ko pēc tam var apgriezt. Šeit rodas neskaidrības.
Papildinot saspiešanu, koda apslēpšana ir paņēmiens, kas padara pirmkodu grūti saprotamu un reverso inženieriju. To bieži izmanto, lai aizsargātu intelektuālo īpašumu, novērstu manipulācijas un atturētu no reversās inženierijas, apgrūtinot uzbrucējiem izprast koda loģiku un identificēt iespējamās ievainojamības. Tas pārvērš lasāmu kodu sarežģītākās un neskaidrākās versijās, nemainot tā funkcionalitāti. Koda slēpšanas rīki var arī pievienot mirušu kodu, lai maldinātu uzbrucējus, apgrūtinot programmatūras kodu bāzes izpratni.
Nu, sajaucīsim mūsu Angular lietotni, ja jums tas šķiet noderīgs.
Webpack obfuscator
Angular izmanto Webpack iepakošanas fāzē, un tam ir savi noklusējuma iestatījumi jūsu izstrādāto moduļu iepakošanai. Mēs to izmantosim un pielāgosim, kā Webpack pakotnes Angular lietotnes. Vispirms instalējiet šādas pakotnes:
javascript-obfuscator: jaudīgs bezmaksas JavaScript obfuscator ar dažādām funkcijām, lai aizsargātu jūsu avota kodu.
tā kā webpack-obfuscator to izmanto kā spraudni, lai nodrošinātu Webpack funkcionalitāti. JavaScript obfuscator kodu varat atrast šeit un Webpack obfuscator spraudni šeit.Hipersaites pieteikšanās ir redzama.
Pēc tam izveidojiet custom-webpack.config.js failu ar pielāgoto konfigurāciju, kuru vēlamies lietot komplektēšanas procesā. Šeit ir vienkāršs piemērs:
Jūs varat nodrošināt daudz dažādu konfigurācijas iespēju spraudņiem, webpack-obfuscator, lai precīzi noregulētu sajaukto izvadi. Tas ir vienkāršākais, lai kodam pievienotu debugProtection, kas apgrūtina konsoles izmantošanu, lai izsekotu lietojumprogrammas mainīgajiem un funkcijām.
Piezīme: Otrais WebpackObfuscatorMasīva parametri ir faili, kas izslēdz slēpšanu。
Līdz šim mēs esam iestatījuši Webpack konfigurāciju. Tagad mums tas ir jāizmanto. Mums ir vajadzīga arī cita atkarība:
Tas palīdzēs mums integrēt mūsu pielāgoto tīmekļa pakotnes veidotāju ar Angular, lai mēs joprojām varētu veidot struktūras, izmantojot Angular. Kad pakotne ir instalēta, mums ir jāmaina tikai faila angular.json. Meklējiet būvēšanas atribūtu un pievienojiet tālāk norādīto.
Aizstājot builderfrom ar @angular-devkit/build-angular:browser uz @angular-builders/custom-webpack:browser, mēs joprojām varam veidot pārlūkprogrammu, bet tagad varam ievadīt mūsu pielāgoto tīmekļa pakotnes konfigurāciju. Rekvizīts customWebpackConfig iestata atsauci uz failu tā, lai Angular to varētu izmantot.
Ja viss ir iestatīts pareizi, jūsu būvēšanas komandām vajadzētu darboties labi, un rezultāts būs mulsinoša Angular lietotne!
Trūkums
Tomēr, lūdzu, ņemiet vērā, ka šai metodei ir trūkumi iepakojuma izmēra ziņā. Koda apslēpšana apgrūtina koda reverso inženieriju, bet mainīgo deklarēšanas veids izmanto vairāk rakstzīmju, kā rezultātā palielinās pakotnes lielums - gandrīz pretējā koda minimizācijas virzienā.
Tas ir viss. Noteikti izmantojiet to mērķtiecīgi un uzziniet, kā novērst šīs tehnoloģijas trūkumus!
Sākotnējā:Hipersaites pieteikšanās ir redzama. Atsauce:Hipersaites pieteikšanās ir redzama. |