Ha még csak most kezdi a webfejlesztést vagy a Node.js-t, akkor lehet, hogy nincs tudatában annak, hogy mennyire fontos az alkalmazás biztonsága.

Az Express.js hatékony megoldást kínál a webes háttéralkalmazások létrehozásához, de nem teszi lehetővé a biztonságot. Amikor webalkalmazást készít, megfelelő biztonsági intézkedésekre van szüksége a felhasználók adatainak védelme érdekében.

Szerencsére vannak módszerek, amelyek segítségével fokozhatja Express.js alkalmazásai biztonságát. Ezek a tippek mind hozzájárulnak az alkalmazások biztonságának erősítéséhez különböző megközelítések használatával.

Állítson be egy Express.js alkalmazást

Kezdje egy demó beállításával Express.js webszerver segítségével npm, a Node Package Manager. Hozzon létre egy projektmappát helyileg, és módosítsa a könyvtárat a terminálon.

mkdir expressz-projekt
cd express-projekt

Ezután hozzon létre a package.json fájlt a gyökérkönyvtárban.

npm init -y

Folytassa és telepítse az Express.js-t.

npm install express

Végül hozzon létre a

instagram viewer
server.js fájlt a projektmappa gyökérkönyvtárába, és adja hozzá a következő kódot egy alapvető webszerver beállításához.

const expressz = igényelnek("Expressz")
const app = express()
const PORT = process.env. PORT || 5000

app.get("/", (req, res) => {
res.json("Helló Világ!")
})

app.listen (PORT, () => {
konzol.log(`Szerver indítása bekapcsolva http://localhost:${PORT}`)
})

Indítsa el a szervert ezzel a paranccsal:

csomópont szerver.js

Most készen áll arra, hogy megvizsgáljon néhány olyan intézkedést, amellyel biztonságossá teheti Express.js alkalmazását.

1. Express.js alkalmazások védelme sisak használatával

Sisak egy Node.js köztes szoftver, amely különféle HTTP biztonsági fejlécek beállításával segíti a szerveroldali alkalmazások biztonságát. Ezek a fejlécek alapvető védelmi mechanizmusokat biztosítanak az ellen gyakori backend biztonsági rések, mint például a webhelyek közötti szkriptelés (XSS), a webhelyek közötti kérés-hamisítás (CSRF) és még sok más.

Az Express.js alapértelmezés szerint nem konfigurálja a HTTP biztonsági fejléceket, ami potenciális biztonsági hibát hagy maga után, amely a potenciálisan érzékeny fejléceket fedi fel. Ezen információk felhasználásával a rosszindulatú szereplők jogosulatlan hozzáférést kaphatnak, vagy más módon megzavarhatják az alkalmazást.

A sisak létfontosságú pajzsként működik, biztosítva, hogy az alkalmazás HTTP-válaszai elfogadják a szükséges biztonsági intézkedéseket, jelentősen csökkentve a lehetséges támadási felületet.

Az Express.js alkalmazások biztonságának felfedezése sisak nélkül

A kiszolgáló futása közben vizsgálja meg az alkalmazás fejléceit. Menj előre és HTTP kéréseket küldhet az API-nak a Postman segítségével vagy bármely más ügyfél, amely válaszfejlécet jelenít meg. A legtöbb böngésző tartalmaz egy sor fejlesztői eszközt, amelyek lehetővé teszik ezt.

Amikor kéréseket küld az otthoni végpontnak, hasonló eredményeket kell megfigyelnie a Fejlécek a válasz szakasza a Postáson belül.

Vedd észre a X-Powered-By fejléc. A háttértechnológiák általában ezt a fejlécet használják a webalkalmazást működtető keretrendszer vagy egyéb szoftver jelzésére. Általában el kell távolítani a X-Powered-By éles környezetben.

Ezzel megakadályozhatja, hogy a potenciális támadók olyan értékes információkhoz jussanak, amelyeket felhasználhatnak a technológiai veremhez kapcsolódó ismert sebezhetőségek kihasználására.

Tesztelje az Express.js kiszolgáló biztonsági konfigurációját

Alkalmazásai biztonsági állapotának felméréséhez a Biztonsági fejlécek online eszköz. Ez az alkalmazás kifejezetten a HTTP-fejlécek biztonsági konfigurációjának értékelésére szolgál az ügyféloldali és a szerveroldali alkalmazásokhoz.

Először is elérhetővé kell tennie a helyi Express.js szervert az interneten keresztül. Ennek két lehetséges módja van: az Express.js alkalmazás telepítése felhőkiszolgálón vagy az ngrok használata.

Használni, töltsd le az ngrok-ot zip fájlt, csomagolja ki a végrehajtható fájlt, és indítsa el az alkalmazást. Ezután futtassa a következő parancsot a helyi Express.js-kiszolgáló ngrok használatával történő üzemeltetéséhez.

ngrok http 5000

Az ngrok néhány rövid információt ad ki, amelyek így néznek ki:

Másolja ki a megadott továbbítási URL és illessze be a Biztonsági fejlécek' beviteli mezőbe, és kattintson a Letapogatás gomb.

A biztonsági értékelés befejezése után hasonló jelentést kell kapnia.

A jelentés alapján nyilvánvaló, hogy az Express.js szerver rosszat kapott F fokozat. Ez az alacsony besorolás annak köszönhető, hogy a kiszolgáló konfigurációjában hiányoznak az alapvető HTTP biztonsági fejlécek – ezek hiánya a szervert sebezhetővé teszi a potenciális biztonsági kockázatokkal szemben.

Integrálja a sisakot az Express.js alkalmazásba

Most pedig integrálja a Helmetet Express.js alkalmazásába. Futtassa az alábbi parancsot a függőség telepítéséhez.

npm sisak telepítése

Frissítse a server.js fájlt, és importálja a Helmet-et.

const sisak = igényelnek("sisak")

Most adja hozzá a Helmet-et Express.js alkalmazásához.

app.use (sisak())

Végül pörgesse fel a fejlesztői kiszolgálót, másolja ki a továbbítási hivatkozást ngrok's terminálon, és illessze be a Biztonsági fejléc beviteli mezőt a helyi szerver újraellenőrzéséhez. Az újraolvasás befejezése után az alábbiakhoz hasonló eredményeket kell látnia:

A Helmet integrálása után az Express.js számos alapvető biztonsági fejlécet tartalmaz a HTTP-válaszban. Ez a jelentős fejlesztés hatására az Express.js alkalmazás átállt egy A fokozat.

Bár a Helmet nem egy bolondbiztos megoldás, jelentősen növeli az Express.js alkalmazás általános biztonságát.

2. Express.js-alkalmazások védelme a Joi-val, egy beviteli ellenőrzési könyvtárral

Joi egy bemenet-ellenőrzési könyvtár, amely segít az Express.js-alkalmazások biztonságában azáltal, hogy kényelmes módot biztosít a felhasználói bevitel érvényesítésére és megtisztítására. Az érvényesítési sémák Joi használatával történő meghatározásával megadhatja a bejövő adatok várható struktúráját, adattípusait és megszorításait.

A Joi ellenőrzi a bemenetet a meghatározott sémával szemben, biztosítva, hogy az megfeleljen a megadott feltételeknek. Ez segít megelőzni az olyan gyakori biztonsági réseket, mint az adatbefecskendezés, az XSS (cross-site scripting) és más adatmanipulációs támadások.

Kövesse ezeket a lépéseket a Joi alkalmazásba való integrálásához.

  1. Telepítse a Joi-t.
    npm install joi
  2. Importálja a Joi-t a server.js fájlba.
    const Joi = igényelnek('joi');
  3. Hozzon létre egy Joi adatellenőrzési sémát, amely meghatározza a bemeneti adatok várható struktúráját és megszorításait.
    const schema = Joi.object({
    email: Joi.string().email().required(),
    jelszó: Joi.string().min(5).max(16).kívánt()
    });
  4. Érvényesítse az összes bejövő adatot a meghatározott séma használatával.
    const { hiba, érték } = schema.validate (req.body);

    ha (hiba) {
    // Érvényesítési hiba kezelése
    // Például hibaválaszt ad vissza
    Visszatérés res.status(400).json({ hiba: hiba részletei[0].message });
    }

E lépések végrehajtásával kihasználhatja a Joi bemenet-ellenőrzési képességeit Express.js alkalmazásai biztonsága érdekében. Ez biztosítja, hogy a bejövő adatok megfeleljenek a meghatározott korlátoknak, megelőzve a potenciális adatmanipulációs biztonsági fenyegetéseket.

3. Express.js alkalmazások biztonsága a CORS-mechanizmus használatával

A Cross-Origin Resource Sharing (CORS) egy olyan mechanizmus, amellyel a webszerverek felügyelik, hogy mely források – ügyfelek vagy más szerveroldali alkalmazások – férhetnek hozzá védett erőforrásaikhoz. Ez a mechanizmus segít megvédeni a jogosulatlan, több forrásból származó kérelmeket, megelőzve az olyan problémákat, mint például a cross-site scripting (XSS) támadások.

Az Express.js alkalmazások CORS használatával történő biztonságossá tételéhez kövesse az alábbi lépéseket:

  1. Telepítse a CORS csomagot.
    npm install cors
  2. A CORS köztes szoftver megkövetelése és használata a server.js fájlban.
    const cors = igényelnek("cors");
    app.use (cors());

Ha integrálja a CORS köztes szoftvert az Express.js alkalmazásba, engedélyezi a Cross-Origin erőforrás-megosztást. Ez biztosítja, hogy mérsékelje a több származású kérésekkel kapcsolatos potenciális biztonsági kockázatokat.

Szerveroldali alkalmazások biztonságossá tétele könnyedén

Ezen alapvető intézkedések közül egyet vagy többet használhat Express.js-alkalmazásai biztonságának fokozására.

Bár számos intézkedés és megközelítés áll rendelkezésre a szerveroldali alkalmazások védelmére, a legfontosabb dolog az, hogy a biztonságot a fejlesztés teljes életciklusa során előnyben kell részesítenie. Ez egy olyan feladat, amely a tervezési szakaszban kezdődik, és egészen a telepítésig folytatódik.