Threats and Attacks

Mikä on XSS (Cross-Site Scripting)?

Cross-Site Scripting eli XSS on verkkosivustojen tietoturvahaavoittuvuus, joka mahdollistaa hyökkääjien haitallisten skriptien lisäämisen verkkosivuille. Useimmiten nämä skriptit on kirjoitettu JavaScriptillä.

Mikä on XSS (Cross-Site Scripting)?

Cross-Site Scripting, eli XSS, on verkkosivustojen tietoturva-aukko, joka mahdollistaa hyökkääjien haitallisten skriptien lisäämisen verkkosivuille. Useimmiten nämä skriptit kirjoitetaan JavaScriptillä.

Jos joku vierailee XSS

vaikuttamalla sivulla, hänen selaimensa suorittaa hyökkääjän skriptin. Tämä voi johtaa varastettuihin evästeisiin, kaapattuihin istuntoihin tai käyttäjän luvatta tehtyihin toimenpiteisiin.

XSS, kuten SQL Injection, on säännöllisesti listattu OWASP Top 10 -listalla yhtenä yleisimmistä verkkosovellusten haavoittuvuuksista.

plexicus-xss-attack-ilustration

Kuinka XSS toimii?

XSS kohdistuu usein verkkosovelluksiin, jotka eivät tarkista ja puhdista käyttäjän syötettä oikein.

Esimerkiksi, jos kommenttilaatikko sallii raaka HTML

tai JavaScriptin ilman suodatusta, hyökkääjä voisi lisätä koodia kuten:

<script>alert('Hacked!');</script>

Kun uhrit katsovat sivua, haitallinen koodi suoritetaan heidän selaimessaan.

Miksi XSS on tärkeä kyberturvallisuudessa

XSS voi johtaa suurempaan tietomurtoon:

  • Tilin kaappaus (istuntoevästeiden varastaminen käyttäjien esittämiseksi)
  • Tietovarkaus (lomakesyötteiden, kuten salasanojen tai luottokorttien, kaappaaminen)
  • Phishing-hyökkäykset (väärennettyjen kirjautumislomakkeiden injektointi)
  • Haittaohjelmien jakelu (käyttäjien ohjaaminen haitallisille verkkosivustoille)

XSS
tyypit

  1. DOM-pohjainen XSS
  2. Hyökkäys tapahtuu kokonaan selaimessa manipuloimalla Document Object Modelia (DOM) ilman palvelimen osallisuutta.
  3. Tallennettu XSS
  4. Haitallinen skripti tallennetaan pysyvästi palvelimelle, kuten tietokantaan tai profiilisivulle.
  5. Heijastettu XSS
  6. Skripti heijastuu verkkopalvelimelta (esim. URL-osoitteessa tai virheilmoituksessa), skripti suoritetaan, kun uhri klikkaa hyökkääjien luomaa linkkiä.

Kuinka estää XSS

  • Syötteen puhdistus ja tulostuksen koodaus: aina käyttäjädatan puhdistaminen ennen sen käsittelyä, muuntaen käyttäjädatan turvalliseen muotoon
  • Käytä Content Security Policy (CSP): rajoittaa, mitä skriptiä voidaan suorittaa selaimessa.
  • Vältä eval()- ja inline-JavaScriptiä: vähentääksesi injektioriskejä.
  • Turvatestaus (DAST/IAST): suorita turvatestausta haavoittuvuuksien havaitsemiseksi aikaisin

Esimerkki tosielämän tapauksesta - Samy-mato (MySpace, 2005)

Mitä tapahtui: Samy Kamkar julkaisi MySpace-profiilin, joka sisälsi tallennetun XSS-kuorman. Kun muut käyttäjät katsoivat profiilia, kuorma suoritettiin heidän selaimissaan, se (a) lisäsi Samyn ystäväksi, (b) lisäsi lauseen “Samy is my hero” heidän profiileihinsa, ja (c) replikoitui näiden käyttäjien profiilisivuille.

Vaikutus: Mato levisi itsestään ~1 miljoonalle käyttäjälle noin 20 tunnin kuluessa, pakottaen MySpacen tilapäisesti offline-tilaan.

Miksi se toimi: MySpace salli pakkaamattoman HTML

/attribuuttien käytön profiilikentissä, mikä mahdollisti tallennetun skriptin suorittamisen vierailijoiden selaimissa.

Oppitunnit / korjaus: Oikea lähtöaineiston koodaus, syötteen puhdistus, HTML

poistaminen profiilikentistä ja nopea korjaaminen. Samy kohtasi myöhemmin oikeudellisia seurauksia, ja MySpace otti käyttöön suodattimet.

Liittyvät termit

Ready to validate what matters?

Ready to validate what matters?

Plexicus is Proof-Driven AppSec: validated findings, contextual understanding, and reviewed remediation — anchored in evidence, scoped with you.

Qualification

Check whether AI Swarm Pentest fits your environment.

Share the minimum context. We will review the scope and tell you the next commercial step.

Before submitting — verify you fit

Teams with fewer than 50 developers: start a 14-day Trial instead of booking a demo. Start a 14-day Trial →

0 / 280

No commitment. If you don't fit, we'll tell you.

SAMPLE HANDOVER · ILLUSTRATIVE

Sample evidence handover

A trimmed view of what your team receives at the end of an AI Swarm Pentest engagement. Real engagements include full technical evidence, executive narrative, and a remediation plan.

VALIDATED FINDING Evidence attached

Server-Side Request Forgery in webhooks/receiver

demo-project/sample-app · src/webhooks/receiver.py:42

SeverityHigh CVSS 3.18.6 Priority79 Confirmedvia replay

Untrusted caller-supplied URLs reach an internal egress without an allowlist. Replayed in a sandbox against a fresh authorised target — the same control was validated to fail twice.

REVIEWER-READY REMEDIATION Merge-ready PR

Validate the target URL against an allowlist of permitted hostnames. Reject private/internal IP ranges. Enforce HTTPS only.

plexicus/remediation/webhooks-ssrf 3 changed · 0 new files
42resp = requests.get(target_url)
42+if not is_allowed_host(target_url):
43+  raise WebhookRejected(target_url)
44+resp = requests.get(target_url, timeout=5)
Every engagement hands over:
  • Executive briefing
  • Validated findings list
  • Merge-ready PRs
  • Compliance mapping (NIS2 · DORA · CRA)