2010-08-10 6 views
5

Kennt jemand Scriptinjektionsscanner, die erkennen können, ob Ihre Website kompromittiert wurde (d. H. Javascript, das eingespritzt wurde, das sollte einfach nicht da sein)?Website-Skript-Injektionsscan

+0

Sie sollten die Kontrolle tun, bevor irgendetwas nicht nach dem geschrieben wird. –

Antwort

2

Es ist schwierig: Sie müssen jede URL Ihrer Anwendung testen und prüfen, ob bestimmte Muster in der Antwort vorhanden sind (und es ist sehr schwierig, einen guten Algorithmus zu haben, der versteht, was gutes und schlechtes JavaScript ist oder Sie muss diesen Scanner konfigurieren, der lang und knifflig sein kann).

Es gibt eine Echtzeit-Open-Source-Lösung namens mod security auf der Serverseite. Es ist eine Web Application Firewall: Sie kann bestimmte Muster in Anfragen und/oder Antworten erkennen. Es funktioniert auf Apache als ein Modul. Dies ist hauptsächlich eine Produktionslösung und erkennt keine Injektion während der Entwicklung. Darüber hinaus benötigen Sie einige Erfahrungen, um sie zu optimieren (was im Datenaustausch mit unseren Kunden gut und falsch ist), was schwierig sein kann und nicht vor neuen Angriffen oder intelligenteren Angriffen schützt (z. B. Zeichen neu codieren).

Übrigens ist eine andere Lösung zu verwenden Content Security Policy aber es ist nicht in allen Browsern verfügbar (nun, niemand in der heutigen Zeit, warten auf Firefox 4 ;-).

1

Sie nicht können. Da ein schlechtes Skript immer in der Lage sein wird, Ihre Scannerfunktion zu überschreiben/zu neutralisieren, wenn sie im Browser ankommt.
Und Ihr Server hat keine Kontrolle darüber, was auf Ihrer Seite passiert.

Es gibt eine einfache Möglichkeit, Ihre Seite vor der Injektion zu schützen: Platzieren Sie den gesamten nicht vertrauenswürdigen Inhalt mit einer iframe, die auf eine andere Subdomain oder einen anderen Port auf Ihrem Server zeigt.
Sie erhalten die gleiche Ursprungsrichtlinie, die den Iframe in Sandbox versetzt und den Zugriff auf Ressourcen der übergeordneten Seite verhindert.

Dann möchten Sie vielleicht sicher zwischen den Iframes und der Hauptseite kommunizieren.
Wenn Sie auf moderne Browser oder Handys abzielen, können Sie window.postMessage verwenden, um String-Nachrichten zu senden.
Für älteren Browser, gibt es einige Tricks here is a blog post with a solution

Diese nicht Sie gegen Cross-Site-Scripting schützt, aber das ist ein anderes Problem, das Sie mit einem geheimen Token in der übergeordneten Seite lösen.