I primi attacchi di rete sfruttavano le vulnerabilità legate all'implementazione dei protocolli TCP/IP. Con la correzione progressiva di queste vulnerabilità, gli attacchi si sono spostati verso i livelli applicativi e in particolare il web, dove la maggior parte delle società aprono i loro sistemi firewall per il traffico destinato al web.
Il protocollo HTTP (o HTTPS) è lo standard che permette di veicolare le pagine web attraverso un meccanismo di richieste e risposte. Usato essenzialmente per trasportare delle pagine web di informazioni (pagine web statiche), il web è rapidamente diventato un supporto interattivo che permette di fornire dei servizi online. Il termine di «applicazione web» designa quindi tutte le applicazioni la cui interfaccia è accessibile attraverso il web tramite un semplice browser. Diventato il supporto di un discreto numero di tecnologie (SOAP, Javascript, XML RPC, ecc.), il protocollo HTTP possiede ormai un ruolo strategico comprovato nella sicurezza dei sistemi di informazione.
Da quando i server web sono sempre più sicuri, gli attacchi si sono progressivamente spostati verso lo sfruttamento delle falle delle applicazioni web.
Per questo motivo, la sicurezza dei servizi web deve essere un elemento da considerare al momento della loro concezione e la programmazione.

Le vulnerabilità delle applicazioni web possono essere classificate nel modo seguente :
Il protocollo HTTP è per natura previsto per gestire delle richieste, cioè ricevere dei dati in entrata e inviare dei dati in ritorno. I dati possono essere inviati in modi diversi :
Il principio di base da considerare in maniera generale al momento di qualsiasi programmazione informatica è che non bisogna fare affidamento ai dati inviati dal cliente.
Infatti, quasi la totalità delle vulnerabilità dei servizi web è legata alle negligenze dei programmatori, che non verificano il formato dei dati inseriti dagli utilizzatori.
Gli attacchi verso le applicazioni web sono sempre nocivi dato che danno un cattiva riputazione alla società. Le conseguenze di un attacco riuscito possono essere una delle seguenti :