Dove: XSS (Wieso funktioniert zb. ein Google API)?

Hi

Hab beim Thema Cross-Site-Scripting etwas Verständniss-Schwierigkeiten.
Baue ich zb. mit einem Google API eine Webapp, dann geschieht doch dabei eigentlich die ganze Zeit eine Art von XSS, oder?

Ich binde dabei JavaScripts ein die bei Google liegen. Habe ich danach Aktionen auf meiner WebApp (zb. ein Move in einer Google Map) führt das doch doch dazu, dass Daten mit Google augetauscht werden.

Warum gibt es hier keine Probleme mit XSS?

Hintergrund meiner Frage ist, dass ich die Anforderung habe, mit wenig Code einen Teil einer externen Website zu "populaten". Das Ganze ist ein kleine Anmeldeformular mit dynamischem Inhalt und die Daten sollen danach wieder zu mir zurück fliessen.

Danke für alle Hinweise die hier etwas Licht ins Dunkle bringen!

Grüsse
Dove

  1. hi,

    Hab beim Thema Cross-Site-Scripting etwas Verständniss-Schwierigkeiten.
    Baue ich zb. mit einem Google API eine Webapp, dann geschieht doch dabei eigentlich die ganze Zeit eine Art von XSS, oder?

    Nein.

    Ich binde dabei JavaScripts ein die bei Google liegen. Habe ich danach Aktionen auf meiner WebApp (zb. ein Move in einer Google Map) führt das doch doch dazu, dass Daten mit Google augetauscht werden.

    Das ist doch in diesem Falle wohl gewünschtes Verhalten?

    Warum gibt es hier keine Probleme mit XSS?

    Lies die Definition von Cross-Site Scripting doch noch mal nach.

    Hier ist es doch gewollt, dass Daten mit Google ausgetauscht werden - vom "Ausnutzen einer Computersicherheitslücke, indem Informationen aus einem Kontext, in dem sie nicht vertrauenswürdig sind, in einen anderen Kontext eingefügt werden, in dem sie als vertrauenswürdig eingestuft sind" kann also kaum die Rede sein.

    Hintergrund meiner Frage ist, dass ich die Anforderung habe, mit wenig Code einen Teil einer externen Website zu "populaten".

    Na dann populiere mal schön.

    Wenn du hier dabei Hilfe bekommen willst, dann _formuliere_ aber bitte, und zwar verständlich, statt zu populieren.

    Das Ganze ist ein kleine Anmeldeformular mit dynamischem Inhalt und die Daten sollen danach wieder zu mir zurück fliessen.

    Und wenn du das mal etwas detailierter beschreibst, und vor allem, wo du damit Probleme hast - dann kann dir vielleicht auch weitergeholfen werden.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Ich binde dabei JavaScripts ein die bei Google liegen. Habe ich danach Aktionen auf meiner WebApp (zb. ein Move in einer Google Map) führt das doch doch dazu, dass Daten mit Google augetauscht werden.

      Das ist doch in diesem Falle wohl gewünschtes Verhalten?

      Ich habe nicht geschrieben, dass dieses Verhalten nicht gewünscht ist. Im Gegenteil ich möchte ja eben auch Daten mit einer externen Website austauschen (nur wird das eben durch den Browser unterbunden).

      Hintergrund meiner Frage ist, dass ich die Anforderung habe, mit wenig Code einen Teil einer externen Website zu "populaten".

      Na dann populiere mal schön.

      Wenn du hier dabei Hilfe bekommen willst, dann _formuliere_ aber bitte, und zwar verständlich, statt zu populieren.

      Ziel ist es, dem Betreiber der externen Website ein kleines Stückchen Code zu geben welches er in die Website einbindet.
      Beispiel:

      <html>
      <head>
      <script type="text/javascript" src="http://meinserver.com/js/external.js"></script>
      </head>
      <body text="#000000" bgcolor="#FFFFFF">
      <b>Test mit externem JS als Quelle</b><br />
      <br />
      <div id="external_content"></div>
      </body>
      </html>

      Mittels Code im "external.js" wird der der <div> Container "external_content" mit Inhalt versorgt.
      In diesem Falle wäre dies ein kleines Anmeldeformular mit dynamischen Inhalt (deshalb auch der Weg über die externe JavaScript Quelle).
      Die Anzeige funktioniert soweit ganz gut. Das XSS Problem tritt auf sobald das Formular abgeschickt werden soll.

      Verständlicher?

      Gruss, Dove

      1. hi,

        Mittels Code im "external.js" wird der der <div> Container "external_content" mit Inhalt versorgt.
        In diesem Falle wäre dies ein kleines Anmeldeformular mit dynamischen Inhalt (deshalb auch der Weg über die externe JavaScript Quelle).
        Die Anzeige funktioniert soweit ganz gut. Das XSS Problem tritt auf sobald das Formular abgeschickt werden soll.

        Verständlicher?

        Nein, weil dein Verständnis von "XSS" immer noch nicht mit der Realität übereinstimmt.

        Wie _äussert_ sich denn das Problem?
        Meinst du vielleicht gar kein XSS, sondern dass du an der Same Origin Policy scheiterst?

        Dann übermittle die Formulardaten beim Abschicken nicht per Javascript, sondern "ganz normal". Ggf. muss der Nutzer eine Meldung bestätigen, dass die Informationen an eine andere Domain verschickt werden.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hallo,

    Hab beim Thema Cross-Site-Scripting etwas Verständniss-Schwierigkeiten.
    Baue ich zb. mit einem Google API eine Webapp, dann geschieht doch dabei eigentlich die ganze Zeit eine Art von XSS, oder?

    Nein. XSS wäre es wenn ...

    Ich binde dabei JavaScripts ein die bei Google liegen. Habe ich danach Aktionen auf meiner WebApp (zb. ein Move in einer Google Map) führt das doch doch dazu, dass Daten mit Google augetauscht werden.

    Warum gibt es hier keine Probleme mit XSS?

    ... du eine Schwachstelle in Googles Anwendung ausnützen würdest um dieser Fehlerhaften Kode zu übergeben um so deinen eigenen Kode zu erzeugen.

    Ganz gut erklärt ist das z.B. unter: http://www.heise.de/security/artikel/print/38658 und in http://www.cgisecurity.com/articles/xss-faq.txt

    Grüße
    Thomas