window.pipedriveLeadboosterConfig = { base: pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster on jo olemassa') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Web-sovelluksen turvallisuus - XSS-haavoittuvuus - The Codest
Codest
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Toimialat
    • Fintech & pankkitoiminta
    • E-commerce
    • Adtech
    • Terveysteknologia
    • Valmistus
    • Logistiikka
    • Autoteollisuus
    • IOT
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
Takaisin nuoli PALAA TAAKSE
2021-04-16
Ohjelmistokehitys

Web-sovelluksen turvallisuus - XSS-haavoittuvuus

Lukasz Kolko

XSS-hyökkäysten avulla hyökkääjät voivat syöttää asiakaspuolen komentosarjoja muiden käyttäjien katselemille verkkosivuille. Tämän haavoittuvuuden tärkeimmät vaikutukset ovat mahdollisuus suorittaa mitä tahansa toimintoja kirjautuneen käyttäjän kontekstissa ja lukea mitä tahansa tietoja kirjautuneen käyttäjän kontekstissa.

Hyökkäysskenaario

  1. Hyökkääjä löytää XSS-haavoittuvuuden uhrin käyttämältä verkkosivustolta, esimerkiksi pankin verkkosivustolta.
  2. Uhri on tällä hetkellä kirjautuneena tälle sivulle.
  3. Hyökkääjä lähettää uhrille väärennetyn URL-osoitteen.
  4. Uhri napsauttaa URL-osoitetta
  5. Uhrin pankki verkkosivusto, JavaScript koodi aloittaa suorituksen sieppaamaan käyttäjän tietoja tai suorittamaan siirron hänen puolestaan hyökkääjän tilille.

On syytä huomata, että uhrin puolesta suoritettavat operaatiot voivat olla uhrille näkymättömiä, sillä ne voivat tapahtua taustalla pankin sovellusrajapinnan avulla, tai hyökkääjä voi suorittaa ne myöhemmin tunnistautumiseen tarvittavien tietojen, tunnisteiden, evästeiden jne. avulla.

XSS-tyypit

1. Heijastettu XSS

Tämä on sellainen, jossa minkä tahansa parametrin (esim. GET, POST tai eväste) sisältämä HTML/JavaScript-koodi näytetään vastauksena.

Sivu, jossa on tekstinsyöttö, jolla haetaan jotain, joka asettaa parametrin ?search=foo URL-osoitteen lopussa, kun API:ta kysytään. Jos jotain lausetta ei löydy, sen syöttämisen jälkeen annetaan palautusviesti HTML ex.

<div>Ei löytynyt tulosta <b>foo</b></div>

Voimme yrittää laittaa URL-osoitteen ?search=..

2.DOM XSS

Tämä tapahtuu silloin, kun sen suorittaminen mahdollistetaan käyttämällä vaarallisia toimintoja JavaScript:ssä, kuten seuraavia toimintoja `eval` tai `innerHtml`. Alla oleva "Live-esimerkki" näyttää DOM XSS -hyökkäyksen, joka perustuu `innerHtml` toiminto.

3. Tallennettu XSS

Tässä tapauksessa haittakoodi kirjoitetaan palvelinpuolelle. Voimme esimerkiksi lähettää haitallista koodia sisältävän kommentin blogikirjoitukseen, joka ladataan palvelimelle. Sen tehtävänä on esimerkiksi odottaa ylläpitäjän moderointia ja sitten varastaa hänen istuntotietonsa jne.

Injektiomenetelmät

1. Tagin sisällössä

`onerror=alert('XSS')`osoitteeseen

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

2. Määritteen sisällössä

`" onmouseover=alert('XSS')`` osoitteeseen

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

  1. Määritteen sisällössä ilman lainausmerkkejä

x onclick=alert('XSS')osoitteeseen

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

  1. Vuonna hrefef-ominaisuus

javascript:alert('XSS') osoitteeseen

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

  1. JavaScript-koodin sisällä olevassa merkkijonossa

";alert('XSS')// osoitteeseen

  1. JavaScript-tapahtuman sisältämässä attribuutissa.

');alert('XSS')// jossa ' on yksittäinen lainausmerkki, ja

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

  1. Vuonna href attribuutti JavaScript-protokollan sisällä

);alert(1)// jossa %27 on yksittäinen lainausmerkki, ja

<a href="javascript:change('');alert(1)//')">klikkaa</a>


Live-esimerkki

Puolustusmenetelmät

  1. Tiedon koodaus käyttämällä sisäänrakennettuja toimintoja, jotka löytyvät monista ohjelmointikielet.
  2. Mallijärjestelmien käyttö automaattisen koodauksen kanssa. Useimmat suositut kehykset, jotka käyttävät tällaisia järjestelmiä, suojaavat meitä XSS-injektioilta (Django, Templates, Vue, React jne.).
  3. Älä käytä funktioita kuten eval tai Toiminto epäluotettavien käyttäjätietojen kanssa.
  4. Älä käytä funktioita ja ominaisuuksia, jotka osoittavat HTML-koodia suoraan DOM-puun elementteihin, esim, innerHTML, outerHTML, insertAdjacentHTML, ocument.write. Sen sijaan voit käyttää funktioita, jotka kohdistavat tekstiä suoraan näihin elementteihin, kuten esimerkiksi funktio textContent tai innerText.
  5. Ole varovainen, kun ohjaat käyttäjän URL-osoitteeseen, joka on hänen hallinnassaan. Injektioriski location = 'javascript('XSS')'.
  6. Suodata HTML:ää käyttämällä kirjastoja, kuten DOMPurify.
  7. Ole varovainen lataamisen suhteen .html tai .svg tiedostot. Voit luoda erillisen verkkotunnuksen, josta ladatut tiedostot toimitetaan.
  8. Käytä Content-Security-Policy mekanismi.
  9. Tutustu useimpiin suosittuihin selaimiin rakennettuihin XSS-suodattimiin.

    Jos tämä artikkeli kiinnostaa sinua, seuraa Lukaszia Githubissa: https://github.com/twistezo

Lue lisää:

Tiedonhakustrategiat NextJS:ssä

Rails API ja CORS. Ripaus tietoisuutta

Miksi sinun pitäisi (luultavasti) käyttää Typescriptiä?

Aiheeseen liittyvät artikkelit

Ohjelmistokehitys

Tulevaisuuden web-sovellusten rakentaminen: The Codest:n asiantuntijatiimin näkemyksiä

Tutustu siihen, miten The Codest loistaa skaalautuvien, interaktiivisten verkkosovellusten luomisessa huipputeknologian avulla ja tarjoaa saumattomia käyttäjäkokemuksia kaikilla alustoilla. Lue, miten asiantuntemuksemme edistää digitaalista muutosta ja liiketoimintaa...

THECODEST
Ohjelmistokehitys

Top 10 Latviassa toimivaa ohjelmistokehitysyritystä

Tutustu Latvian parhaisiin ohjelmistokehitysyrityksiin ja niiden innovatiivisiin ratkaisuihin uusimmassa artikkelissamme. Tutustu siihen, miten nämä teknologiajohtajat voivat auttaa nostamaan liiketoimintaasi.

thecodest
Yritys- ja skaalausratkaisut

Java-ohjelmistokehityksen perusteet: A Guide to Outsourcing Successfully

Tutustu tähän keskeiseen oppaaseen Java-ohjelmistokehityksen onnistuneesta ulkoistamisesta tehokkuuden parantamiseksi, asiantuntemuksen saamiseksi ja projektin onnistumiseksi The Codestin avulla.

thecodest
Ohjelmistokehitys

Perimmäinen opas ulkoistamiseen Puolassa

Ulkoistamisen lisääntyminen Puolassa johtuu taloudellisesta, koulutuksellisesta ja teknologisesta kehityksestä, joka edistää tietotekniikan kasvua ja yritysystävällistä ilmapiiriä.

TheCodest
Yritys- ja skaalausratkaisut

Täydellinen opas IT-tarkastustyökaluihin ja -tekniikoihin

Tietotekniikan tarkastuksilla varmistetaan turvalliset, tehokkaat ja vaatimustenmukaiset järjestelmät. Lue lisää niiden merkityksestä lukemalla koko artikkeli.

Codest
Jakub Jakubowicz teknologiajohtaja ja toinen perustaja

Tilaa tietopankkimme ja pysy ajan tasalla IT-alan asiantuntemuksesta.

    Tietoa meistä

    The Codest - Kansainvälinen ohjelmistokehitysyritys, jolla on teknologiakeskuksia Puolassa.

    Yhdistynyt kuningaskunta - pääkonttori

    • Toimisto 303B, 182-184 High Street North E6 2JA
      Lontoo, Englanti

    Puola - Paikalliset teknologiakeskukset

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Krakova
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsova, Puola

      Codest

    • Etusivu
    • Tietoa meistä
    • Palvelut
    • Tapaustutkimukset
    • Tiedä miten
    • Työurat
    • Sanakirja

      Palvelut

    • Se neuvoa-antava
    • Ohjelmistokehitys
    • Backend-kehitys
    • Frontend-kehitys
    • Staff Augmentation
    • Backend-kehittäjät
    • Pilvi-insinöörit
    • Tietoinsinöörit
    • Muut
    • QA insinöörit

      Resurssit

    • Faktoja ja myyttejä yhteistyöstä ulkoisen ohjelmistokehityskumppanin kanssa
    • Yhdysvalloista Eurooppaan: Miksi amerikkalaiset startup-yritykset päättävät muuttaa Eurooppaan?
    • Tech Offshore -kehityskeskusten vertailu: Tech Offshore Eurooppa (Puola), ASEAN (Filippiinit), Euraasia (Turkki).
    • Mitkä ovat teknologiajohtajien ja tietohallintojohtajien tärkeimmät haasteet?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Verkkosivuston käyttöehdot

    Tekijänoikeus © 2025 by The Codest. Kaikki oikeudet pidätetään.

    fiFinnish
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek fiFinnish