Kui te alles alustate oma veebiarendust või Node.js-i teekonda, ei pruugi te olla teadlik sellest, kui oluline on teie rakenduse turvalisus.

Express.js pakub tõhusat lahendust taustaveebirakenduste loomiseks, kuid see ei puuduta turvalisust. Veebirakenduse loomisel vajate kasutajate andmete kaitsmiseks piisavaid turvameetmeid.

Õnneks saate oma Express.js-i rakenduste turvalisuse suurendamiseks kasutada meetodeid. Need näpunäited aitavad tugevdada teie rakenduste turvalisust, kasutades erinevaid lähenemisviise.

Rakenduse Express.js seadistamine

Alustage demo seadistamisega Express.js veebiserver kasutades npm, sõlme paketihaldur. Looge kohapeal projekti kaust ja muutke oma terminalis selle kataloog.

mkdir ekspressprojekt
cd ekspressprojekt

Järgmisena looge a package.json faili juurkataloogis.

npm init -y

Jätkake ja installige Express.js.

npm install express

Lõpuks looge a server.js faili oma projektikausta juurkataloogi ja lisage põhilise veebiserveri seadistamiseks järgmine kood.

konst väljendada = 
instagram viewer
nõuda("väljendama")
konst rakendus = express()
konst PORT = process.env. PORT || 5000

app.get("/", (req, res) => {
res.json("Tere, Maailm!")
})

app.listen (PORT, () => {
konsool.log(`Serveri käivitamine on sisse lülitatud http://localhost:${PORT}`)
})

Käivitage server selle käsuga:

sõlme server.js

Nüüd olete valmis uurima mõningaid meetmeid, mida saate oma Express.js-rakenduse turvamiseks kasutada.

1. Express.js-i rakenduste kaitsmine kiivriga

Kiiver on Node.js vahevara, mis aitab kaitsta serveripoolseid rakendusi, seadistades erinevaid HTTP-turvapäiseid. Need päised pakuvad olulisi kaitsemehhanisme tavalised taustasüsteemi turvanõrkused, nagu saitidevaheline skriptimine (XSS), saitidevaheline päringu võltsimine (CSRF) ja palju muud.

Express.js ei konfigureeri vaikimisi HTTP-turvapäiseid, jättes potentsiaalse turvavea, mis paljastab potentsiaalselt tundlikud päised. Seda teavet kasutades võivad pahatahtlikud osalejad pääseda volitamata juurde või teie rakendust muul viisil häirida.

Kiiver toimib olulise kilbina, tagades, et rakenduse HTTP-vastused võtavad kasutusele vajalikud turvameetmed, vähendades oluliselt potentsiaalset rünnakupinda.

Express.js-i rakenduste turvalisuse uurimine ilma kiivrita

Kui server töötab, uurige rakenduse päiseid. Mine edasi ja teha API-le HTTP-päringuid, kasutades Postmani või mõni muu klient, mis näitab vastuse päiseid. Enamik brausereid sisaldab arendajatööriistade komplekti, mis võimaldavad teil seda teha.

Kui saadate päringuid kodu lõpp-punktile, peaksite jälgima sarnaseid tulemusi rakenduses Päised Postimehe vastuse osa.

Pange tähele X-Powered-By päis. Tavaliselt kasutavad taustatehnoloogiad seda päist veebirakendust toitava raamistiku või muu tarkvara tähistamiseks. Tavaliselt peaksite eemaldama X-Powered-By päis tootmiskeskkonnas.

Seda tehes takistate potentsiaalsetel ründajatel saamast väärtuslikku teavet, mida nad saaksid kasutada teie tehnoloogiavirnaga seotud teadaolevate haavatavuste ärakasutamiseks.

Testige serveri Express.js turbekonfiguratsiooni

Teie rakenduste turvaoleku hindamiseks kasutame Turvapäised veebitööriist. See rakendus on spetsiaalselt loodud HTTP-päiste turbekonfiguratsiooni hindamiseks kliendipoolsete ja serveripoolsete rakenduste jaoks.

Esiteks peate tegema oma kohaliku Express.js serveri Interneti kaudu juurdepääsetavaks. Selle saavutamiseks on kaks võimalikku lähenemisviisi: rakenduse Express.js juurutamine pilvserverisse või ngroki kasutamine.

Selle kasutamiseks laadige alla ngrok zip-fail, ekstraktige käivitatav fail ja käivitage rakendus. Seejärel käivitage järgmine käsk, et hostida oma kohalikku Express.js-serverit koos ngrokiga.

ngrok http 5000

ngrok väljastab lühikest teavet, mis näeb välja selline:

Kopeerige pakutav edastamise URL ja kleepige see sisse Turvapäised' sisestuskasti ja klõpsake nuppu Skaneeri nuppu.

Kui turvalisuse hindamine on lõpule viidud, peaksite saama sarnase aruande.

Aruande põhjal on ilmne, et Express.js server sai halva F hinne. See madal hinne tuleneb oluliste HTTP-turvapäiste puudumisest serveri konfiguratsioonis – nende puudumine jätab serveri potentsiaalsete turvariskide suhtes haavatavaks.

Integreerige Kiiver rakendusse Express.js

Nüüd jätkake ja integreerige Helmet oma Express.js-i rakendusse. Sõltuvuse installimiseks käivitage allolev käsk.

npm paigalda kiiver

Värskendage faili server.js ja importige Helmet.

konst kiiver = nõuda("kiiver")

Nüüd lisage oma Express.js rakendusele Helmet.

app.use (kiiver())

Lõpuks keerake arendusserver üles, kopeerige edasisaatmislink ngrok's terminali ja kleepige see Turvapäis sisestusvälja kohaliku serveri uuesti skannimiseks. Kui uuesti skannimine on lõppenud, peaksite nägema sarnaseid tulemusi järgmistega:

Pärast Helmeti integreerimist sisaldab Express.js HTTP-vastusest mitmeid olulisi turbepäiseid. See oluline täiustus põhjustas rakenduse Express.js ülemineku rakendusele A hinne.

Kuigi Helmet ei ole lollikindel lahendus, suurendab see oluliselt teie Express.js rakenduse üldist turvalisust.

2. Express.js-rakenduste turvamine sisendi kontrollimise teegi Joi abil

Joi on sisendi valideerimise teek, mis aitab Express.js-i rakendusi turvaliselt kaitsta, pakkudes mugavat viisi kasutaja sisendi kinnitamiseks ja puhastamiseks. Määrates valideerimisskeemid Joi abil, saate määrata sissetulevate andmete eeldatava struktuuri, andmetüübid ja piirangud.

Joi kontrollib sisendit määratletud skeemi alusel, tagades selle vastavuse määratud kriteeriumidele. See aitab vältida levinud turvanõrkusi, nagu andmete sisestamine, saitidevaheline skriptimine (XSS) ja muud andmetega manipuleerimise rünnakud.

Järgige neid samme, et integreerida Joi oma rakendusse.

  1. Installige Joi.
    npm install joi
  2. Importige Joi oma serveri.js faili.
    konst Joi = nõuda('joi');
  3. Looge Joi andmete valideerimisskeem, mis määrab sisendandmete eeldatava struktuuri ja kõik piirangud.
    konst schema = Joi.object({
    email: Joi.string().email().required(),
    parool: Joi.string().min(5).max(16).nõutud()
    });
  4. Kinnitage kõik sissetulevad andmed määratletud skeemi abil.
    konst { error, value } = schema.validate (req.body);

    kui (viga) {
    // Käsitsege valideerimisviga
    // Näiteks tagastab vea vastuse
    tagasi res.status(400).json({ viga: veadetailid[0].message });
    }

Nende sammude rakendamisel saate oma Express.js-i rakenduste kaitsmiseks kasutada Joi sisendi valideerimise võimalusi. See tagab, et sissetulevad andmed vastavad määratletud piirangutele, vältides võimalikke andmetega manipuleerimise turvaohte.

3. Express.js-i rakenduste turvamine CORS-i mehhanismi abil

Cross-Origin Resource Sharing (CORS) on mehhanism, mida veebiserverid kasutavad selleks, et hallata, millised lähtekohad – kliendid või muud serveripoolsed rakendused – pääsevad juurde oma kaitstud ressurssidele. See mehhanism aitab kaitsta volitamata päritoluüleste päringute eest, hoides ära selliseid probleeme nagu saidiülese skriptimise (XSS) rünnakud.

Express.js-i rakenduste kaitsmiseks CORS-i abil toimige järgmiselt.

  1. Installige CORS pakett.
    npm install cors
  2. Nõuda ja kasutada failis server.js CORS vahevara.
    konst cors = nõuda('kors');
    app.use (cors());

Integreerides CORS-i vahevara oma Express.js-i rakendusse, lubate allikatevahelise ressursside jagamise. See tagab, et maandate päritoluüleste päringutega seotud võimalikke turberiske.

Serveripoolsete rakenduste lihtne turvamine

Saate kasutada ühte või mitut neist olulistest meetmetest oma Express.js-i rakenduste turvalisuse suurendamiseks.

Kuigi teie serveripoolsete rakenduste kaitsmiseks on saadaval palju meetmeid ja lähenemisviise, on oluline, et peaksite kogu arendustegevuse elutsükli jooksul turvalisust esikohale seadma. See on ülesanne, mis algab projekteerimisetapis ja peaks jätkuma kuni kasutuselevõtuni.