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.
Sie sollten die Kontrolle tun, bevor irgendetwas nicht nach dem geschrieben wird. –