Ако някога сте се налагали да пишете реален проект, има проблеми със сигурността — или поне трябва да съществуват. С напредъка на технологиите можем да пишем удивителни, мощни и високопроизводителни системи за кратко време, но това означава, че злонамерените хора и технологии стават по-мощни и трудни за преодоляване. Затова е от съществено значение да се защитават всички често срещани уязвимости при разработването на системи днес.
Angular се грижи за голяма част от сигурността още от кутията: има собствена система за променлива защита и функции за дезинфекция, които предотвратяват изпълнението на злонамерен код във вашето приложение. Друга функция е компресията на кода.
Минимизиране и объркване
Компресията на кода е техника, която намалява размера на изходния код чрез премахване на ненужни символи като интервали и коментари, подобрявайки натоварването на изходния код. Този процес е често срещан в уеб разработката за JavaScript, CSS и HTML файлове и по някакъв начин добавя слой сигурност, като закрива кода. Компресираният код е изключително труден за четене, затова се счита за някакъв вид замъгляване. Въпреки това, инструментът може да декомпресира кода, за да го направи четлив, което след това може да бъде обратно инженерство. Тук идва объркването.
В допълнение към компресията, обфускацията на кода е техника, която прави изходния код труден за разбиране и обратен инженеринг. Често се използва за защита на интелектуалната собственост, предотвратяване на манипулиране и възпиране на обратното инженерство, което затруднява нападателите да разберат логиката на кода и да идентифицират потенциални уязвимости. Той преобразува четим код в по-сложни и неясни версии, без да променя функционалността си. Инструментите за обфускация на код могат също да добавят мъртъв код, за да заблудят нападателите, което затруднява разбирането на софтуерната кодова база.
Е, нека объркаме нашето приложение Angular, ако ви е полезно.
Обфускатор на уебпак
Angular използва Webpack по време на фазата на опаковане и има свои собствени настройки по подразбиране за пакетиране на модулите, които разработвате. Ще се възползваме от това и ще персонализираме начина, по който Webpack опакова приложенията на Angular. Първо, инсталирайте следните пакети:
JavaScript-obfuscator: Мощен безплатен JavaScript обфускатор с различни функции за защита на изходния код.
докато webpack-obfuscator го използва като плъгин, който предоставя функционалност на Webpack. Можете да намерите JavaScript obfuscator кода тук, а плъгина Webpack obfuscator тук.Входът към хиперлинк е видим.
След това създаваме custom-webpack.config.js файл с персонализираната конфигурация, която искаме да приложим по време на процеса на пакетиране. Ето един прост пример:
Можете да предоставите много различни конфигурационни опции за плъгини, webpack-obfuscator за фино настройване на объркания изход. Това е най-лесният начин да добавите debugProtection към кода си, което затруднява използването на конзолата за проследяване на променливите и функциите на приложението.
Забележка: Вторият в WebpackObfuscatorПараметрите на масива са файлове, които изключват обфускацията。
Досега сме настроили конфигурацията за Webpack. Сега трябва да го използваме. Нуждаем се и от още една зависимост:
Това ще ни помогне да интегрираме нашия персонализиран уебпак конструктор с Angular, така че да можем да изграждаме структури с помощта на Angular. След като пакетът бъде инсталиран, трябва само да сменим файла angular.json. Потърсете билд атрибута и добавете следното:
Като заменим builderfrom с @angular-devkit/build-angular:browser с @angular-builders/custom-webpack:browser, все още можем да build за браузъра, но вече можем да инжектираме нашата персонализирана webpack конфигурация. Свойството customWebpackConfig задава препратката към файла, така че Angular да може да го използва.
Ако всичко е настроено правилно, командите за билд би трябвало да работят нормално и резултатът ще е объркващо приложение Angular!
Недостатък
Въпреки това, моля, имайте предвид, че този метод има недостатъци по отношение на размера на пакета. Обфускацията на кода затруднява обратното инженерство, но начинът, по който се декларират променливите, използва повече знаци, което води до увеличаване на размера на пакета – почти в обратната посока на минимизацията на кода.
Това е всичко. Не забравяйте да го използвате целенасочено и да научите как да се справяте с недостатъците на тази технология!
Оригинален:Входът към хиперлинк е видим. Препратка:Входът към хиперлинк е видим. |