2010-08-10 15 views
5

Qualcuno sa di alcuni scanner di script di script che sono in grado di rilevare se il tuo sito Web è stato compromesso (ad esempio javascript che è stato iniettato che dovrebbe semplicemente non esserci)?Scansione iniezione script del sito Web

+0

Si dovrebbe fare il controllo prima di tutto è scritto non dopo. –

risposta

2

È difficile: è necessario testare tutti gli URL della propria applicazione e verificare se sono presenti modelli specifici nella risposta (ed è molto difficile avere un buon algoritmo in grado di capire quale sia javascript buono o cattivo, oppure è necessario configurare questo scanner che può essere lungo e complicato).

C'è una soluzione open source in tempo reale denominata mod security sul lato server. È un firewall per applicazioni Web: è in grado di rilevare schemi specifici nelle richieste e/o risposte. Funziona su Apache come un modulo. Questa è principalmente una soluzione di produzione e non rileva l'iniezione durante lo sviluppo. Inoltre, sono necessarie alcune esperienze per sintonizzarlo (ciò che è buono e sbagliato negli scambi di dati con i nostri client) che può essere complicato e non proteggere da nuovi attacchi o attacchi più intelligenti (caratteri di re-codifica, per esempio).

A proposito, un'altra soluzione è quella di utilizzare Content Security Policy ma non è disponibile in tutti i browser (beh, nessuno al momento attuale, attendere per Firefox 4 ;-).

1

Non è possibile. Poiché uno script non valido sarà sempre in grado di riscrivere/neutralizzare la funzione dello scanner quando arriva sul browser.
E il tuo server non ha più alcun controllo su ciò che accade nella tua pagina.

C'è un modo semplice per proteggere la tua pagina dall'iniezione: posiziona tutti i contenuti non attendibili utilizzando un iframe puntato su un sottodominio o una porta diversi sul tuo server.
Si ottiene lo stesso criterio di origine della sandbox l'iframe e si impedisce l'accesso alle risorse della pagina padre.

Quindi si consiglia di comunicare in modo sicuro tra gli iframe e la pagina principale.
Se si scelgono come target browser o cellulari moderni, è possibile utilizzare window.postMessage per inviare messaggi di stringa.
per browser meno recenti, ci sono alcuni trucchi here is a blog post with a solution

Questo non protegge contro cross site scripting, ma questo è un altro problema che si può risolvere con un token segreto nella pagina padre.

Problemi correlati