The Codest
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Odvětví
    • Fintech a bankovnictví
    • E-commerce
    • Adtech
    • Healthtech
    • Výroba
    • Logistika
    • Automobilový průmysl
    • IOT
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
Šipka zpět ZPĚT
2021-04-16
Vývoj softwaru

Zabezpečení webových aplikací - zranitelnost XSS

Lukasz Kolko

Útoky XSS umožňují útočníkům injektovat skripty na straně klienta do webových stránek zobrazovaných jinými uživateli. Hlavním důsledkem této zranitelnosti je možnost provádění libovolných akcí v kontextu přihlášeného uživatele a čtení libovolných dat v kontextu přihlášeného uživatele.

Scénář útoku

  1. Útočník najde zranitelnost XSS na webové stránce používané obětí, např. na webové stránce banky.
  2. Oběť je v současné době přihlášena na této stránce.
  3. Útočník pošle oběti vytvořenou adresu URL.
  4. Oběť klikne na adresu URL
  5. Na oběti banka webové stránky, JavaScript kód začne provádět zachycení dat uživatele nebo provede jeho jménem převod na účet útočníka.

Je třeba poznamenat, že operace prováděné jménem oběti mohou být pro oběť neviditelné, protože mohou probíhat na pozadí pomocí rozhraní API banky, nebo je útočník může provést později s údaji potřebnými pro ověření, tokeny, soubory cookie atd.

Typy XSS

1. Odražený XSS

Jedná se o kód HTML/JavaScript obsažený v jakémkoli parametru (např. GET, POST nebo cookie), který se zobrazí v odpovědi.

Stránka s textovým vstupem pro vyhledávání, která zadá parametr ?search=foo v koncovce adresy URL při dotazování rozhraní API. Po zadání libovolné fráze, pokud není nalezena, se v HTML zobrazí návratová zpráva ex.

<div>Nebyl nalezen žádný výsledek pro <b>foo</b></div>

Můžeme zkusit zadat adresu URL ?search=..

2.DOM XSS

To je tehdy, když je jeho spuštění povoleno pomocí nebezpečných funkcí v JavaScript, jako např. `eval` nebo `innerHtml`. Níže uvedený "živý příklad" ukazuje útok DOM XSS založený na adrese `innerHtml` funkce.

3. Uložený XSS

V tomto případě je škodlivý kód napsán na straně serveru. Například můžeme odeslat komentář se škodlivým kódem k příspěvku na blogu, který je nahrán na server. Jeho úkolem je například počkat na moderaci administrátora a poté ukrást jeho údaje o relaci apod.

Injekční metody

1. V obsahu značky

`onerror=upozornění('XSS')`na

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

2. V obsahu atributu

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

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

  1. V obsahu atributu bez uvozovek

x onclick=alert('XSS')na

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

  1. V hrefatribut ef

javascript:alert('XSS') na

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

  1. V řetězci uvnitř kódu JavaScript

";alert('XSS')// na

  1. V atributu s událostí JavaScript

');alert('XSS')// kde ' je jednoduchá uvozovka, do

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

  1. V href atribut uvnitř protokolu JavaScript

);alert(1)// kde %27 je jednoduchá uvozovka, do

<a href="javascript:change('%27);alert(1)//')">klikněte na</a>


Živý příklad

Obranné metody

  1. Kódování dat pomocí vestavěných funkcí, které se nacházejí v mnoha programovací jazyky.
  2. Použití šablonových systémů s automatickým kódováním. Většina populárních frameworků, které takové systémy používají, chrání nás před injekcí XSS (Django, Šablony, Vue, React atd.).
  3. Nepoužívejte funkce jako eval nebo Funkce s nedůvěryhodnými uživatelskými daty.
  4. Nepoužívejte funkce a vlastnosti, které přiřazují kód HTML přímo prvkům stromu DOM, např., innerHTML, outerHTML, insertAdjacentHTML, ocument.write. Místo toho můžete použít funkce, které těmto prvkům přímo přiřadí text, jako např. textContent nebo innerText.
  5. Při přesměrování uživatele na adresu URL, která je pod jeho kontrolou, buďte opatrní. Riziko injekce location = 'javascript('XSS')'.
  6. Filtrování HTML pomocí knihoven, jako je DOMPurify.
  7. Pozor na nahrávání .html nebo .svg soubory. Můžete vytvořit samostatnou doménu, ze které budou nahrané soubory obsluhovány.
  8. Použijte Content-Security-Policy mechanismus.
  9. Podívejte se na filtry proti XSS zabudované ve většině populárních prohlížečů.

    Pokud vás tento článek zaujal, sledujte Lukáše na Githubu: https://github.com/twistezo

Přečtěte si více:

Strategie načítání dat v NextJS

Rozhraní Rails API a CORS. Kousek vědomí

Proč byste (pravděpodobně) měli používat Typescript?

Související články

Ilustrace zdravotnické aplikace pro chytré telefony s ikonou srdce a rostoucím zdravotním grafem, označená logem The Codest, která představuje digitální zdraví a řešení HealthTech.
Vývoj softwaru

Softwarové vybavení pro zdravotnictví: a případy použití

Nástroje, na které se dnes zdravotnické organizace spoléhají, se v ničem nepodobají papírovým kartám z doby před desítkami let. zdravotnický software dnes podporuje zdravotnické systémy, péči o pacienty a moderní poskytování zdravotní péče v klinických a...

NEJKRÁSNĚJŠÍ
Abstraktní ilustrace klesajícího sloupcového grafu se stoupající šipkou a zlatou mincí symbolizující efektivitu nákladů nebo úspory. V levém horním rohu se zobrazuje logo The Codest se sloganem "In Code We Trust" na světle šedém pozadí.
Vývoj softwaru

Jak rozšířit tým vývojářů bez ztráty kvality produktu

Zvětšujete svůj vývojový tým? Zjistěte, jak růst, aniž byste museli obětovat kvalitu produktu. Tento průvodce se zabývá příznaky, že je čas na škálování, strukturou týmu, najímáním zaměstnanců, vedením a nástroji - a také tím, jak může The Codest...

NEJKRÁSNĚJŠÍ
Vývoj softwaru

Vytváření webových aplikací odolných vůči budoucnosti: postřehy týmu odborníků The Codest

Zjistěte, jak společnost The Codest vyniká při vytváření škálovatelných, interaktivních webových aplikací pomocí nejmodernějších technologií, které poskytují bezproblémové uživatelské prostředí na všech platformách. Zjistěte, jak naše odborné znalosti podporují digitální transformaci a obchodní...

NEJKRÁSNĚJŠÍ
Vývoj softwaru

10 nejlepších lotyšských společností zabývajících se vývojem softwaru

V našem nejnovějším článku se dozvíte o nejlepších lotyšských společnostech zabývajících se vývojem softwaru a jejich inovativních řešeních. Zjistěte, jak mohou tito technologičtí lídři pomoci pozvednout vaše podnikání.

thecodest
Podniková a škálovací řešení

Základy vývoje softwaru v jazyce Java: A Guide to Outsourcing Successfully

Prozkoumejte tuto základní příručku o úspěšném vývoji softwaru outsourcing Java, abyste zvýšili efektivitu, získali přístup k odborným znalostem a dosáhli úspěchu projektu s The Codest.

thecodest

Přihlaste se k odběru naší znalostní databáze a získejte aktuální informace o odborných znalostech z oblasti IT.

    O nás

    The Codest - Mezinárodní společnost zabývající se vývojem softwaru s technologickými centry v Polsku.

    Spojené království - ústředí

    • Kancelář 303B, 182-184 High Street North E6 2JA
      Londýn, Anglie

    Polsko - Místní technologická centra

    • Kancelářský park Fabryczna, Aleja
      Pokoju 18, 31-564 Krakov
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšava, Polsko

      The Codest

    • Home
    • O nás
    • Služby
    • Case Studies
    • Vědět jak
    • Kariéra
    • Slovník

      Služby

    • To Advisory
    • Vývoj softwaru
    • Vývoj backendu
    • Vývoj frontendů
    • Staff Augmentation
    • Vývojáři backendu
    • Cloudoví inženýři
    • Datoví inženýři
    • Další
    • Inženýři QA

      Zdroje

    • Fakta a mýty o spolupráci s externím partnerem pro vývoj softwaru
    • Z USA do Evropy: Proč se americké startupy rozhodly přesídlit do Evropy?
    • Srovnání technických vývojových center v zahraničí: Tech Offshore Evropa (Polsko), ASEAN (Filipíny), Eurasie (Turecko)
    • Jaké jsou hlavní výzvy CTO a CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2026 by The Codest. Všechna práva vyhrazena.

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