Az XSS (cross-site scripting) egyfajta biztonsági kihasználás, amely lehetővé teszi a támadók számára, hogy rosszindulatú szkripteket fecskendezzenek be a webhelyekre ügyfélkód segítségével. Jelentős veszélyt jelent, mivel a támadók arra használhatják, hogy megszemélyesítsék a felhasználókat, hozzáférjenek érzékeny adatokhoz, vagy akár módosítsák a webhely oldaltartalmát.

Annyira veszélyes, hogy 2021-ben a második helyen állt a 25 legveszélyesebb gyengeség általános gyengeséglistáján. Ez azt jelenti, hogy ha webhelyeket hoz létre, ismernie kell a webhelyek közötti szkriptelést és annak megakadályozását.

Hogyan működik a Cross-Site Scripting?

Mielőtt megértené, hogyan működik a több telephelyen átívelő szkript, fontos tudnia, hogy mit jelent az azonos eredetű szabályzat (SOP). Az SOP egy biztonsági mechanizmus házirendje, amely korlátozza a webhelyek (egyik eredet) olvasását vagy írását egy másik webhelyre (másik eredetű). Megakadályozza, hogy a rosszindulatú webhelyek rosszindulatú kódot küldjenek megbízható webhelyekre.

instagram viewer

A webhelyek közötti parancsfájl-támadások megpróbálják megkerülni ezt a szabályzatot, kihasználva a böngésző képtelenségét, hogy különbséget tudjon tenni a legitim HTML és a rosszindulatú kód között. Például egy támadó JavaScript-kódot fecskendezhet be a célwebhelyre. Tegyük fel, hogy a böngésző végrehajtja a kódot, és a támadó hozzáfér a munkamenet-tokenekhez, cookie-khoz és egyéb érzékeny adatokhoz.

Három típusa van webhelyek közötti szkriptek, amelyeket a hackerek a webhelyek feltörésére használnak: tükrözött, tárolt és DOM XSS.

Hogyan akadályozható meg a webhelyek közötti szkriptelés a Node-ban

Az alábbiakban felsorolunk néhány lépést, amelyekkel megakadályozhatja a helyek közötti parancsfájlokat a Node-ban.

Bemenet fertőtlenítése

A támadóknak képesnek kell lenniük arra, hogy adatokat küldjenek a webalkalmazásnak, és megjelenítsék azokat a felhasználónak ahhoz, hogy XSS-támadást hajtsanak végre. Ezért az első megelőző intézkedés, amelyet meg kell tennie, az az összes bemenet megtisztítása, amelyet az alkalmazás a felhasználóktól kap. Ez döntő fontosságú, mert észleli a hamis adatokat, mielőtt a szerver végrehajtaná azokat. Ezt megteheti manuálisan, vagy használhat egy hasonló eszközt érvényesítő ami felgyorsítja a folyamatot.

Használhatja például a érvényesítő hogy elkerülje a HTML-címkéket a felhasználói bevitelben az alábbiak szerint.

import érvényesítő tól től „ellenőrző”;
let userInput = `Jane <script onload="éber('XSS hack');"></script>`;
hagyja sanitizedInput = validator.escape (userInput);

Ha a fenti kódot futtatnád, a megtisztított kimenet ez lenne.

Jane &lt; script onload=&quot; éber(&#x27;XSS feltörés&#x27;);&quot;&gt;&lt;&#x2F; forgatókönyv&gt;

Felhasználói bevitel korlátozása

Korlátozza azt a beviteli módot, amelyet a felhasználó érvényesítéssel küldhet be az űrlapon. Például, ha van egy beviteli mezője egy e-mailhez, csak az e-mail formátumban engedélyezze a bevitelt. Így minimálisra csökkenti annak esélyét, hogy a támadók rossz adatokat küldjenek be. Ehhez használhatja a validátor csomagot is.

Végezze el a Csak HTTP-cookie-szabályzatot

A sütik a helyi gyorsítótárban tárolják az adatokat és küldje vissza a szerverre HTTP-n keresztül. A támadók azonban JavaScript segítségével is elérhetik őket a böngészőn keresztül, így könnyű célpontok.

A csak HTTP-alapú cookie egy olyan házirend, amely megakadályozza, hogy az ügyféloldali szkriptek hozzáférjenek a cookie-adatokhoz. Ez azt jelenti, hogy még ha az alkalmazás sebezhetőséget is tartalmaz, és a támadó kihasználja azt, nem férhet hozzá a cookie-hoz.

Íme egy példa arra, hogyan valósíthatja meg a csak HTTP-alapú cookie-házirendet a Node.js-ben Express használatával:

kb.használat(Expressz.ülés({
titok: "titok",
aprósütemény: {
Csak http: igaz,
biztonságos: igaz
}
}))

Ha egy támadó megpróbált hozzáférni a cookie-hoz a Csak http A címke igaz értékre állítva a fentiek szerint, akkor üres karakterláncot kapnak.

A webhelyek közötti szkriptelés egyszerű célpont a hackerek számára

Bár az alkalmazás biztonságának biztosítása kulcsfontosságú, megvalósítása bonyolult lehet. Ebből a bejegyzésből megtudhatta a helyek közötti parancsfájl-támadásokat, és azt, hogyan akadályozhatja meg őket a Node-ban. Mivel a támadók kihasználják az alkalmazás sebezhetőségét, hogy rosszindulatú kódot fecskendezzenek be a kiszolgálóba, mindig ügyeljen arra, hogy megtisztítsa a felhasználói bevitelt. Ezzel eltávolítja a rosszindulatú kódot, mielőtt az alkalmazás tárolná vagy végrehajtaná.