(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': data().getTime(),įvykis:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LHNRP9'); Žiniatinklio programų saugumas - XSS pažeidžiamumas - The Codest
The Codest
  • Apie mus
  • Paslaugos
    • Programinės įrangos kūrimas
      • Priekinės dalies kūrimas
      • Galinės dalies kūrimas
    • Staff Augmentation
      • Priekinės dalies kūrėjai
      • Atgalinės versijos kūrėjai
      • Duomenų inžinieriai
      • Debesų inžinieriai
      • QA inžinieriai
      • Kita
    • Patariamoji tarnyba
      • Auditas ir konsultacijos
  • Pramonės šakos
    • Fintech ir bankininkystė
    • E-commerce
    • Adtech
    • Sveikatos technologijos
    • Gamyba
    • Logistika
    • Automobiliai
    • IOT
  • Vertė už
    • CEO
    • CTO
    • Pristatymo vadybininkas
  • Mūsų komanda
  • Case Studies
  • Sužinokite, kaip
    • Tinklaraštis
    • Susitikimai
    • Interneto seminarai
    • Ištekliai
Karjera Susisiekite su mumis
  • Apie mus
  • Paslaugos
    • Programinės įrangos kūrimas
      • Priekinės dalies kūrimas
      • Galinės dalies kūrimas
    • Staff Augmentation
      • Priekinės dalies kūrėjai
      • Atgalinės versijos kūrėjai
      • Duomenų inžinieriai
      • Debesų inžinieriai
      • QA inžinieriai
      • Kita
    • Patariamoji tarnyba
      • Auditas ir konsultacijos
  • Vertė už
    • CEO
    • CTO
    • Pristatymo vadybininkas
  • Mūsų komanda
  • Case Studies
  • Sužinokite, kaip
    • Tinklaraštis
    • Susitikimai
    • Interneto seminarai
    • Ištekliai
Karjera Susisiekite su mumis
Atgal rodyklė GRĮŽTI ATGAL
2020-10-14
Programinės įrangos kūrimas

Žiniatinklio programos saugumas - XSS pažeidžiamumas

Lukasz Kolko

XSS atakos leidžia įsilaužėliams į kitų naudotojų peržiūrimus tinklalapius įterpti kliento pusės scenarijus. Pagrindiniai šios spragos padariniai - galimybė atlikti bet kokius veiksmus prisijungusio naudotojo kontekste ir skaityti bet kokius duomenis prisijungusio naudotojo kontekste.

Puolimo scenarijus

  1. Užpuolikas randa XSS pažeidžiamumą aukos naudojamoje svetainėje, pvz., banko svetainėje.
  2. Šiuo metu auka yra prisijungusi prie šio puslapio
  3. Užpuolikas siunčia aukai suklastotą URL adresą.
  4. auka spusteli URL adresą
  5. Dėl aukos bankas interneto svetainėje, JavaScript kodas pradedamas vykdyti, kad perimtų naudotojo duomenys arba jo vardu atlikti pervedimą į užpuoliko sąskaitą.

Verta pažymėti, kad aukos vardu atliekamos operacijos aukai gali būti nematomos, nes jos gali būti atliekamos fone, naudojant banko API, arba užpuolikas gali juos atlikti vėliau, naudodamas autentifikavimui reikalingus duomenis, žetonus, slapukus ir pan.

XSS tipai

1. Atspindėtas XSS

Tai toks atvejis, kai atsakyme rodomas HTML/JavaScript kodas, esantis bet kuriame parametre (pvz., GET, POST arba slapukas).

Puslapis su teksto įvestimi, kurioje ieškoma kažko, kas pateikia parametrą ?search=foo URL pabaigoje, kai užklausiama API. Įvedus bet kurią frazę, jei ji nerandama, HTML formatu pateikiamas grįžtamasis pranešimas ex.

<div>Nerastas joks rezultatas <b>foo</b></div>

Galime pabandyti įrašyti URL adresą ?search=..

2.DOM XSS

Taip yra tada, kai jos vykdymas įjungiamas naudojant pavojingas JavaScript funkcijas, pvz. `eval` arba `innerHtml`. Toliau pateiktame “Tiesioginiame pavyzdyje” rodoma DOM XSS ataka, pagrįsta `innerHtml` funkcija.

3. Saugomas XSS

Tai vienas iš atvejų, kai kenkėjiškas kodas rašomas serverio pusėje. Pavyzdžiui, į tinklaraščio įrašą, kuris įkeliamas į serverį, galime nusiųsti komentarą su kenkėjišku kodu. Jo užduotis, pavyzdžiui, laukti, kol administratorius atliks moderavimą, o tada pavogti jo sesijos duomenis ir pan.

Injekcijos metodai

1. Žymos turinys

`onerror=įspėjimas('XSS')`į

<img src onerror="alert('XSS')" />

2. Atributo turinys

`" onmouseover=įspėjimas('XSS')` į

<div class="" onmouseover="alert('XSS')""></div>

  1. Atributo turinyje be kabučių

x onclick=įspėjimas('XSS')į

<div class="x" onclick="alert('XSS')"></div>

  1. Į hrefef požymis

javascript:alert('XSS') į

<a href="javascript:alert('XSS')"></a>

  1. JavaScript kodo viduje esančioje eilutėje

";alert('XSS')// į

<script>let username="";alert('XSS')//";</script>
  1. Atributas su JavaScript įvykiu

');alert('XSS')// kur ' yra viena kabliataškė, į

<div onclick="change('&#39;);alert('XSS')//')">John</div>

  1. Į href atributas JavaScript protokole

);alert(1)// kur %27 yra viena kabliataškė, į

<a href="javascript:change('%27);alert(1)//')">spustelėkite</a>


Tiesioginis pavyzdys

Gynybos metodai

  1. Duomenų kodavimas naudojant integruotas funkcijas, esančias daugelyje programavimo kalbos.
  2. Naudojant šablonų sistemas su automatiniu kodavimu. Dauguma populiarių karkasų, naudojančių tokias sistemas, apsaugo mus nuo XSS injekcijos (Django, Šablonai, Vue, React ir t. t.).
  3. Nenaudokite tokių funkcijų kaip eval arba Funkcija su nepatikimais naudotojo duomenimis.
  4. Nenaudokite funkcijų ir savybių, kurios HTML kodą tiesiogiai priskiria DOM medžio elementams, pvz, innerHTML, outerHTML, insertAdjacentHTML, ocument.write. Vietoj to galite naudoti funkcijas, kurios tiesiogiai priskiria tekstą šiems elementams, pvz. textContent arba innerText.
  5. Būkite atsargūs nukreipdami naudotoją į jo valdomą URL adresą. Injekcijos rizika vieta = 'javascript('XSS')'.
  6. HTML filtravimas naudojant bibliotekas, pvz. DOMPurify.
  7. Būkite atsargūs dėl įkėlimo .html arba .svg failai. Galite sukurti atskirą domeną, iš kurio bus aptarnaujami įkelti failai.
  8. Naudokite Turinio saugumo politika mechanizmas.
  9. Pažvelkite į daugumoje populiariausių naršyklių įdiegtus anti-XSS filtrus.

    Jei šis straipsnis jums įdomus, sekite Lukaszą "Github" svetainėje: https://github.com/twistezo

Skaityti daugiau:

Duomenų gavimo strategijos "NextJS

Rails API ir CORS. Sąmoningumo brūkšnelis

Kodėl turėtumėte (tikriausiai) naudoti Typescript?

Susiję straipsniai

Išmaniojo telefono sveikatos priežiūros programėlės su širdies piktograma ir kylančia sveikatos diagrama, pažymėtos The Codest logotipu, iliustracija, vaizduojanti skaitmeninės sveikatos ir sveikatos technologijų sprendimus.
Programinės įrangos kūrimas

Sveikatos priežiūros programinė įranga: Sveikatos priežiūros paslaugos: tipai, naudojimo atvejai

Įrankiai, kuriais šiandien naudojasi sveikatos priežiūros organizacijos, nė iš tolo neprimena prieš kelis dešimtmečius naudotų popierinių kortelių. sveikatos priežiūros programinė įranga dabar padeda sveikatos sistemoms, pacientų priežiūrai ir šiuolaikiniam sveikatos priežiūros paslaugų teikimui klinikinėse ir...

GERIAUSIAS
Abstrakti mažėjančios stulpelinės diagramos su kylančia rodykle ir auksine moneta, simbolizuojančia ekonomiškumą arba taupymą, iliustracija. Viršutiniame kairiajame viršutiniame kampe pavaizduotas The Codest logotipas ir šūkis "In Code We Trust" šviesiai pilkame fone.
Programinės įrangos kūrimas

Kaip padidinti savo Dev komandą neprarandant produkto kokybės

Didinate savo kūrėjų komandą? Sužinokite, kaip augti neprarandant produkto kokybės. Šiame vadove aptariami ženklai, kad atėjo laikas didinti komandą, komandos struktūra, įdarbinimas, vadovavimas ir įrankiai - ir kaip The Codest gali...

GERIAUSIAS
Programinės įrangos kūrimas

Sukurkite ateičiai atsparias žiniatinklio programas: The Codest ekspertų komandos įžvalgos

Sužinokite, kaip The Codest puikiai kuria keičiamo dydžio interaktyvias žiniatinklio programas, naudodama pažangiausias technologijas ir užtikrindama vientisą naudotojų patirtį visose platformose. Sužinokite, kaip mūsų patirtis skatina skaitmeninę transformaciją ir verslo...

GERIAUSIAS
Programinės įrangos kūrimas

10 geriausių Latvijoje įsikūrusių programinės įrangos kūrimo įmonių

Naujausiame mūsų straipsnyje sužinokite apie geriausias Latvijos programinės įrangos kūrimo įmones ir jų inovatyvius sprendimus. Sužinokite, kaip šie technologijų lyderiai gali padėti pakelti jūsų verslo lygį.

thecodest
Įmonių ir didinimo sprendimai

"Java" programinės įrangos kūrimo pagrindai: A Guide to outsourcing Outsourcing Successfully

Išnagrinėkite šį esminį vadovą, kaip sėkmingai outsourcing "Java" programinę įrangą kurti, kad padidintumėte efektyvumą, įgytumėte patirties ir sėkmingai įgyvendintumėte projektus su The Codest.

thecodest

Prenumeruokite mūsų žinių bazę ir būkite nuolat informuoti apie IT sektoriaus patirtį.

    Apie mus

    The Codest - tarptautinė programinės įrangos kūrimo bendrovė, turinti technologijų centrus Lenkijoje.

    Jungtinė Karalystė - būstinė

    • 303B biuras, 182-184 High Street North E6 2JA
      Londonas, Anglija

    Lenkija - vietiniai technologijų centrai

    • Fabryczna biurų parkas, Aleja
      Pokoju 18, 31-564 Krokuva
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšuva, Lenkija

    The Codest

    • Pagrindinis
    • Apie mus
    • Paslaugos
    • Case Studies
    • Sužinokite, kaip
    • Karjera
    • Žodynas

    Paslaugos

    • Patariamoji tarnyba
    • Programinės įrangos kūrimas
    • Galinės dalies kūrimas
    • Priekinės dalies kūrimas
    • Staff Augmentation
    • Atgalinės versijos kūrėjai
    • Debesų inžinieriai
    • Duomenų inžinieriai
    • Kita
    • QA inžinieriai

    Ištekliai

    • Faktai ir mitai apie bendradarbiavimą su išoriniu programinės įrangos kūrimo partneriu
    • Iš JAV į Europą: Kodėl Amerikos startuoliai nusprendžia persikelti į Europą?
    • Technikos plėtros centrų užsienyje palyginimas: Tech Offshore Europa (Lenkija), ASEAN (Filipinai), Eurazija (Turkija)
    • Kokie yra svarbiausi CTO ir CIO iššūkiai?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Autorinės teisės © 2026 The Codest. Visos teisės saugomos.

    lt_LTLithuanian
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lvLatvian is_ISIcelandic lt_LTLithuanian