Ако тек почињете свој веб развој или путовање Ноде.јс, можда нисте свесни колико је важно да обезбедите своју апликацију.
Екпресс.јс пружа ефикасно решење за прављење позадинских веб апликација, али му недостаје безбедност. Када правите веб апликацију, потребне су вам адекватне мере безбедности за заштиту података корисника.
На срећу, постоје методе које можете предузети да побољшате безбедност својих Екпресс.јс апликација. Сви ови савети ће помоћи да се побољша безбедност ваших апликација коришћењем различитих приступа.
Подесите Екпресс.јс апликацију
Започните постављањем демо Екпресс.јс веб сервер Користећи нпм, менаџер пакета чворова. Креирајте пројектну фасциклу локално и промените директоријум у њега на свом терминалу.
мкдир екпресс-пројецт
цд експрес-пројекат
Затим креирајте а пацкаге.јсон датотеку у основном директоријуму.
нпм инит -и
Само напред и инсталирајте Екпресс.јс.
нпм инсталл екпресс
На крају, креирајте а сервер.јс датотеку у основном директоријуму фасцикле вашег пројекта и додајте следећи код да бисте подесили основни веб сервер.
конст екпресс = захтевају("изразити")
конст апп = екпресс()
конст ПОРТ = процес.енв. ПОРТ || 5000апп.гет("/", (рек, рес) => {
рес.јсон("Здраво Свете!")
})
апп.листен (ПОРТ, () => {
конзола.Пријава(`Покретање сервера укључено http://localhost:${ПОРТ}`)
})
Покрените сервер са овом командом:
чвор сервер.јс
Сада сте спремни да истражите неке од мера које можете користити да бисте заштитили своју Екпресс.јс апликацију.
1. Обезбеђивање Екпресс.јс апликација помоћу шлема
Кацига је Ноде.јс међувера која помаже да се заштите апликације на страни сервера постављањем различитих ХТТП безбедносних заглавља. Ова заглавља пружају основне одбрамбене механизме против уобичајене позадинске безбедносне пропусте, као што су скриптовање на више локација (КССС), фалсификовање захтева на више локација (ЦСРФ) и још много тога.
Екпресс.јс подразумевано не конфигурише ХТТП безбедносна заглавља, остављајући потенцијалну безбедносну грешку која открива потенцијално осетљива заглавља. Користећи ове информације, злонамерни актери могу да добију неовлашћени приступ или на други начин ометају вашу апликацију.
Кацига делује као витални штит, обезбеђујући да ХТТП одговори апликације усвоје неопходне безбедносне мере, значајно смањујући површину потенцијалног напада.
Истраживање безбедности Екпресс.јс апликација без кациге
Док је сервер покренут, прегледајте заглавља апликације. Само напред и правите ХТТП захтеве АПИ-ју помоћу Постмана или било који други клијент који приказује заглавља одговора. Већина претраживача укључује скуп алата за програмере који ће вам то омогућити.
Када шаљете захтеве на кућну крајњу тачку, требало би да приметите сличне резултате у Заглавља део одговора у оквиру Поштара.
Обратите пажњу на Кс-Поверед-Би заглавље. Позадинске технологије обично користе ово заглавље да назначе оквир или други софтвер који покреће веб апликацију. Обично бисте требали уклонити Кс-Поверед-Би заглавље у производном окружењу.
На тај начин ћете спречити потенцијалне нападаче да добију вредне информације које би могли да користе да искористе познате рањивости повезане са вашим технолошким стеком.
Тестирајте безбедносну конфигурацију Екпресс.јс сервера
Да бисмо проценили безбедносни статус ваших апликација, користићемо Сецурити Хеадерс онлајн алат. Ова апликација је посебно дизајнирана да процени безбедносну конфигурацију ХТТП заглавља за апликације на страни клијента, као и за апликације на страни сервера.
Прво, потребно је да ваш локални Екпресс.јс сервер учините доступним преко Интернета. Постоје два могућа приступа да се то постигне: постављање ваше Екпресс.јс апликације на сервер у облаку или коришћење нгрок-а.
да га користим, преузмите нгрок зип датотеку, распакујте извршну датотеку и покрените апликацију. Затим покрените следећу команду да угостите свој локални Екпресс.јс сервер са нгрок-ом.
нгрок хттп 5000
нгрок ће исписати неке кратке информације које изгледају овако:
Копирајте достављено УРЛ за прослеђивање и залепите га у Сецурити Хеадерс' поље за унос и кликните на Скенирај дугме.
Када се процена безбедности заврши, требало би да добијете сличан извештај.
На основу извештаја, евидентно је да је Екпресс.јс сервер добио лош Ф разред. Ова ниска оцена је резултат одсуства битних ХТТП безбедносних заглавља у конфигурацији сервера — њихово одсуство чини сервер рањивим на потенцијалне безбедносне ризике.
Интегришите шлем у апликацију Екпресс.јс
Сада, само напред и интегришите Хелмет у своју Екпресс.јс апликацију. Покрените наредбу испод да бисте инсталирали зависност.
нпм инсталл шлем
Ажурирајте своју сервер.јс датотеку и увезите Хелмет.
конст шлем = захтевају("Кацига")
Сада додајте Хелмет у своју Екпресс.јс апликацију.
апп.усе (кацига())
Коначно, покрените развојни сервер, копирајте везу за прослеђивање нгрок'с терминал и налепите га у Сецурити Хеадер'с поље за унос за поновно скенирање локалног сервера. Када се поновно скенирање заврши, требало би да видите резултате сличне овим:
Након интеграције Хелмета, Екпресс.јс укључује неколико основних безбедносних заглавља у ХТТП одговор. Ово значајно побољшање је довело до преласка апликације Екпресс.јс на ан А разред.
Иако Хелмет није сигурно решење, он значајно побољшава укупну безбедност ваше Екпресс.јс апликације.
2. Обезбеђивање Екпресс.јс апликација помоћу Јои, библиотеке за проверу ваљаности уноса
Јои је библиотека за валидацију уноса која помаже да се заштите Екпресс.јс апликације тако што пружа згодан начин за валидацију и дезинфекцију уноса корисника. Дефинисањем шема за валидацију помоћу Јои-а, можете одредити очекивану структуру, типове података и ограничења за долазне податке.
Јои валидира унос према дефинисаној шеми, осигуравајући да испуњава наведене критеријуме. Ово помаже у спречавању уобичајених безбедносних пропуста као што су убацивање података, скриптовање на више локација (КССС) и други напади манипулације подацима.
Пратите ове кораке да интегришете Јои у своју апликацију.
- Инсталирајте Јои.
нпм инсталл јои
- Увезите Јои у своју сервер.јс датотеку.
конст Јои = захтевају('јои');
- Креирајте шему за валидацију Јои података која дефинише очекивану структуру и сва ограничења за улазне податке.
конст сцхема = Јои.објецт({
емаил: Јои.стринг().емаил().рекуиред(),
лозинка: Јои.стринг().мин(5).мак(16).потребан()
}); - Потврдите све долазне податке користећи дефинисану шему.
конст { грешка, вредност } = сцхема.валидате (рек.боди);
ако (грешка) {
// Руковати грешком валидације
// На пример, врати одговор на грешку
повратак рес.статус(400).јсон({ грешка: детаљи о грешци[0].мессаге });
}
Применом ових корака, можете да искористите Јои-јеве могућности провере уноса да бисте заштитили своје Екпресс.јс апликације. Ово ће осигурати да долазни подаци испуњавају дефинисана ограничења, спречавајући потенцијалне безбедносне претње манипулације подацима.
3. Обезбеђивање Екпресс.јс апликација коришћењем ЦОРС механизма
Дељење ресурса са више извора (ЦОРС) је механизам који веб сервери користе за управљање изворима – клијентима или другим апликацијама на страни сервера – могу да приступе својим заштићеним ресурсима. Овај механизам помаже у заштити од неовлашћених захтева са више извора, спречавајући проблеме као што су напади скриптовања на више локација (КССС).
Да бисте заштитили Екпресс.јс апликације користећи ЦОРС, следите ове кораке:
- Инсталирајте ЦОРС пакет.
нпм инсталл цорс
- Захтевајте и користите ЦОРС међуверски софтвер у датотеци сервер.јс.
конст цорс = захтевају('цорс');
апп.усе (цорс());
Интеграцијом ЦОРС међувера у вашу Екпресс.јс апликацију, омогућавате дељење ресурса са више извора. Ово осигурава да ћете ублажити потенцијалне безбедносне ризике у вези са захтевима са више извора.
Осигуравање апликација на страни сервера са лакоћом
Можете да користите једну или више ових основних мера за побољшање безбедности ваших Екпресс.јс апликација.
Иако постоји много доступних мера и приступа за заштиту апликација на страни сервера, кључни закључак је да би требало да дате приоритет безбедности током целог животног циклуса развоја. Ово је задатак који почиње у фази пројектовања и треба да се настави све до примене.