window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = finestra if (w.LeadBooster) { console.warn('LeadBooster esiste già') } 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 }) }, } } })() Sicurezza delle applicazioni web - Vulnerabilità XSS - The Codest
The Codest
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Industrie
    • Fintech e banche
    • E-commerce
    • Adtech
    • Tecnologia della salute
    • Produzione
    • Logistica
    • Automotive
    • IOT
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
Freccia indietro TORNA INDIETRO
2021-04-16
Sviluppo di software

Sicurezza delle applicazioni web - Vulnerabilità XSS

Lukasz Kolko

Gli attacchi XSS consentono agli aggressori di iniettare script lato client nelle pagine Web visualizzate da altri utenti. Gli effetti principali di questa vulnerabilità sono la possibilità di eseguire qualsiasi azione nel contesto dell'utente connesso e di leggere qualsiasi dato nel contesto dell'utente connesso.

Scenario di attacco

  1. L'attaccante individua la vulnerabilità XSS in un sito web utilizzato dalla vittima, ad esempio il sito di una banca.
  2. La vittima è attualmente collegata a questa pagina
  3. L'aggressore invia alla vittima un URL modificato.
  4. La vittima clicca sull'URL
  5. Sulla vittima banca sito web, JavaScript codice inizia a essere eseguito per intercettare i dati dell'utente o per eseguire un trasferimento a suo nome verso il conto dell'aggressore

Vale la pena notare che le operazioni eseguite per conto della vittima possono essere invisibili a quest'ultima, in quanto possono avvenire in background utilizzando l'API della banca, oppure l'aggressore può eseguirle successivamente con i dati necessari per l'autenticazione, i token, i cookie, ecc.

Tipi di XSS

1. XSS riflesso

È quello in cui il codice HTML/JavaScript contenuto in qualsiasi parametro (ad esempio GET, POST o cookie) viene visualizzato nella risposta.

Una pagina con un input di testo per cercare qualcosa che metta il parametro ricerca=focaccia nell'URL finale quando si interroga l'API. Dopo aver inserito una frase, se non viene trovata, viene inserito un messaggio di ritorno in HTML ex.

<div>Nessun risultato trovato per <b>pippo</b></div>

Possiamo provare a inserire l'URL search=..

2.DOM XSS

Ciò avviene quando la sua esecuzione è abilitata dall'uso di funzioni pericolose nell'JavaScript, come ad esempio `eval` o `innerHtml`. L'"esempio dal vivo" qui sotto mostra un attacco DOM XSS basato sull'elemento `innerHtml` funzione.

3. XSS memorizzato

Si tratta di un caso in cui il codice dannoso viene scritto sul lato server. Ad esempio, possiamo inviare un commento con codice dannoso a un post del blog che viene caricato sul server. Il suo compito è, ad esempio, quello di attendere la moderazione dell'amministratore e poi di rubare i dati della sua sessione, ecc.

Metodi di iniezione

1. Nel contenuto del tag

`onerror=alert('XSS')`in

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

2. Nel contenuto dell'attributo

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

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

  1. Nel contenuto dell'attributo senza le virgolette

x onclick=avviso('XSS')in

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

  1. Nel hrefattributo ef

javascript:alert('XSS') in

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

  1. Nella stringa all'interno del codice JavaScript

";alert('XSS')// in

  1. Nell'attributo con l'evento JavaScript

');alert('XSS')// dove ' è una citazione singola, in

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

  1. Nel href all'interno del protocollo JavaScript

);alert(1)// dove %27 è una citazione singola, in

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


Esempio dal vivo

Metodi di difesa

  1. Codifica dei dati utilizzando le funzioni incorporate presenti in molte linguaggi di programmazione.
  2. Utilizzo di sistemi di template con codifica automatica. La maggior parte dei framework popolari che utilizzano tali sistemi ci proteggono dall'iniezione di XSS (Django, Templates, Vue, React ecc.)
  3. Non utilizzare funzioni come valutazione o Funzione con dati utente non attendibili.
  4. Non utilizzare funzioni e proprietà che assegnano codice HTML direttamente agli elementi dell'albero DOM, ad es, innerHTML, outerHTML, insertAdjacentHTML, ocumento.scrivere. Si possono invece utilizzare funzioni che assegnano il testo direttamente a questi elementi, come ad esempio testoContenuto o testo interno.
  5. Fate attenzione quando reindirizzate l'utente a un URL che è sotto il suo controllo. Rischio di iniezione location = 'javascript('XSS')'.
  6. Filtrare l'HTML utilizzando librerie come DOMPurificare.
  7. Attenzione al caricamento .html o .svg file. È possibile creare un dominio separato da cui verranno serviti i file caricati.
  8. Utilizzare il Politica di sicurezza dei contenuti meccanismo.
  9. Date un'occhiata ai filtri anti-XSS integrati nei browser più diffusi.

    Se avete trovato interessante questo articolo, seguite Lukasz su Github: https://github.com/twistezo

Per saperne di più:

Strategie di recupero dei dati in NextJS

API Rails e CORS. Un pizzico di consapevolezza

Perché si dovrebbe (probabilmente) usare Typescript?

Articoli correlati

Sviluppo di software

Costruire applicazioni web a prova di futuro: le intuizioni del team di esperti di The Codest

Scoprite come The Codest eccelle nella creazione di applicazioni web scalabili e interattive con tecnologie all'avanguardia, offrendo esperienze utente senza soluzione di continuità su tutte le piattaforme. Scoprite come la nostra esperienza favorisce la trasformazione digitale e il business...

IL CANCRO
Sviluppo di software

Le 10 principali aziende di sviluppo software con sede in Lettonia

Scoprite le migliori aziende di sviluppo software della Lettonia e le loro soluzioni innovative nel nostro ultimo articolo. Scoprite come questi leader tecnologici possono aiutarvi a migliorare la vostra attività.

thecodest
Soluzioni per aziende e scaleup

Essenziali di sviluppo software Java: Guida all'outsourcing di successo

Esplorate questa guida essenziale sullo sviluppo di software Java con successo outsourcing per migliorare l'efficienza, accedere alle competenze e guidare il successo del progetto con The Codest.

thecodest
Sviluppo di software

La guida definitiva all'outsourcing in Polonia

L'aumento di outsourcing in Polonia è guidato dai progressi economici, educativi e tecnologici, che favoriscono la crescita dell'IT e un clima favorevole alle imprese.

IlCodesto
Soluzioni per aziende e scaleup

Guida completa agli strumenti e alle tecniche di audit IT

Gli audit IT garantiscono sistemi sicuri, efficienti e conformi. Per saperne di più sulla loro importanza, leggete l'articolo completo.

The Codest
Jakub Jakubowicz CTO e cofondatore

Iscrivetevi alla nostra knowledge base e rimanete aggiornati sulle competenze del settore IT.

    Chi siamo

    The Codest - Società internazionale di sviluppo software con centri tecnologici in Polonia.

    Regno Unito - Sede centrale

    • Ufficio 303B, 182-184 High Street North E6 2JA
      Londra, Inghilterra

    Polonia - Poli tecnologici locali

    • Parco uffici Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Ambasciata del cervello, Konstruktorska
      11, 02-673 Varsavia, Polonia

      The Codest

    • Casa
    • Chi siamo
    • Servizi
    • Case Studies
    • Sapere come
    • Carriera
    • Dizionario

      Servizi

    • Consulenza
    • Sviluppo di software
    • Sviluppo backend
    • Sviluppo Frontend
    • Staff Augmentation
    • Sviluppatori backend
    • Ingegneri del cloud
    • Ingegneri dei dati
    • Altro
    • Ingegneri QA

      Risorse

    • Fatti e miti sulla collaborazione con un partner esterno per lo sviluppo di software
    • Dagli Stati Uniti all'Europa: Perché le startup americane decidono di trasferirsi in Europa
    • Confronto tra gli hub di sviluppo Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filippine), Eurasia (Turchia)
    • Quali sono le principali sfide di CTO e CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condizioni di utilizzo del sito web

    Copyright © 2025 di The Codest. Tutti i diritti riservati.

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