[JavaScript] Cross-Site-Scripting

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] Cross-Site-Scripting

    Hi folks.

    Ich schreibe gerade an einem Chat, der auf PHP/SQL/IRC aufbaut.

    Ich fasse mein Problem kurz zusammen:

    Ich habe 3 Frames.

    mainFrame
    eingabeFrame
    onlineFrame

    mainFrame -> http://chat-stream.domain.td/..
    eingabeFrame -> http://chat.domain.td/..
    onlineFrame -> http://chat.domain.td/..

    In der onlineFrame sind alle User gelistet, die gerade in diesem Raum sind. Wenn man auf den Namen klickt, wird automatisch in der eingabeFrame "/f username" hingeschrieben. Somit kann man diesen gleich flüstern!

    Das schaut so aus (ich gebe einfach den HTML-Code wieder, denn die ganzen SQL Abfragen im PHP-Script sind ja eigentlich unwichtig):
    JavaScript:
    Code:
    <script language="JavaScript">
    function flusterTo(user)
    {
    	top.frames['eingabeFrame'].document.szene1.msg.value = "/f "+user+" ";
    	top.frames['eingabeFrame'].document.szene1.msg.focus();
    }
    </script>
    Der Link:
    Code:
    <a href="javascript:flusterTo('z_master')">z_master</a>
    So funktioniert das wunderbar!

    Wenn ich aber das Gleiche in der mainFrame machen will, bekomme ich einen Fehler wegen nicht erlaubten Zugriff.
    Nun bin ich auf die Suche gegangen und wollte das Problem mit document.domain="domain.td" lösen.
    Das klappte nicht!
    Entweder habe ich das falsch eingebaut, oder irgendetwas vergessen.
    Ich habe 2 Sachen probiert.
    Einmal habe ich das document.domain in das JS-Script der mainFrame geschrieben.

    Und zwar so:
    Code:
    function flusterTo2(user)
    {
    
    document.domain="szene1.at";
    		top.frames['eingabeFrame'].document.szene1.msg.value = "/f "+user+" ";
    	top.frames['eingabeFrame'].document.szene1.msg.focus();
    }
    Die andere Variante war glaub ich komplett falsch.


    Vielleicht kann mir ja jemand helfen.


    lg
    ¨¯¨`·-.,¸_¸,.-·´¨¯¨`·-.,¸_¸,.-·´¨¯¨
    ich bin ein teil von jener kraft, die gutes will und böses schafft ...
    -_¸,.-·´¨¯¨`·-.,¸_¸,.-·´¨¯¨`·-.,¸_-

  • #2
    chat-stream.domain.td und chat.domain.td sind unterschiedliche Domains.

    Der Innere Frame darf dann nicht auf den äußeren Frame zugreifen -> Same Origin Policy http://www.mozilla.org/projects/secu...me-origin.html

    PS: Manchmal wird die Same Origin Policy auch Same Domain Policy genannt - da mag man mich aber korrigieren wenn ich da falsch liege.

    Kommentar


    • #3
      @prego
      Mal das was darunter steht gelesen ?
      There is one exception to the same origin rule. A script can set the value of document.domain to a suffix of the current domain. If it does so, the shorter domain is used for subsequent origin checks. For example, assume a script in the document at http://store.company.com/dir/other.html executes this statement:
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Ja, nach dem Post hab ichs gelesen Hatte nur Fix nach nem Link gesucht. Aber dann ist das ja genau die Lösung seines Problems

        Kommentar


        • #5
          Original geschrieben von prego
          Ja, nach dem Post hab ichs gelesen Hatte nur Fix nach nem Link gesucht. Aber dann ist das ja genau die Lösung seines Problems
          Danke für euren schnellen Antworten, aber ich befürchte du hast meinen Beitrag nicht ganz gelesen.

          Wie schon beschrieben habe ich das

          [document.domain]document.domain[/code]

          ja eingefügt, aber es klappt trotzdem nicht! Darum schreibe ich ja hier.

          Guck dir mal meinen letzten [code] Tag an, da steht der Code-Schnipsel drinnen. Habe ich das falsch bei der function eingebaut, oder muss das etwa nicht in die mainFrame sondern in die eingabeFrame?


          Gruß.
          ¨¯¨`·-.,¸_¸,.-·´¨¯¨`·-.,¸_¸,.-·´¨¯¨
          ich bin ein teil von jener kraft, die gutes will und böses schafft ...
          -_¸,.-·´¨¯¨`·-.,¸_¸,.-·´¨¯¨`·-.,¸_-

          Kommentar


          • #6
            Sorry wegen Doppelposting.

            Ich wollte nur darauf hinweisen, dass ich das Problem gelöst habe.
            Ich wusste nicht, dass man das document.domain in beiden Datein eintragen muss.

            Thread kann geschlossen werden.


            Gruß.
            ¨¯¨`·-.,¸_¸,.-·´¨¯¨`·-.,¸_¸,.-·´¨¯¨
            ich bin ein teil von jener kraft, die gutes will und böses schafft ...
            -_¸,.-·´¨¯¨`·-.,¸_¸,.-·´¨¯¨`·-.,¸_-

            Kommentar


            • #7
              imho hätte es ausreichend sein sollen subdomain.domain.tld einzutragen. Aber probiert habe ich das nie
              Wäre es ggf nicht besser alle drei Files in den gleichen Domains/Subdomains anzulegen ?

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Original geschrieben von jahlives
                imho hätte es ausreichend sein sollen subdomain.domain.tld einzutragen. Aber probiert habe ich das nie
                Wäre es ggf nicht besser alle drei Files in den gleichen Domains/Subdomains anzulegen ?

                Gruss

                tobi
                Nope. Das sind 4 Frames. Eine davon streamed die Chat-Auswertung vom IRC Server ins PHP. Um Buffer und Firewall Probleme zu verhindern (das Leute von der Firma bzw hinter Firewall/Proxy etc trotzdem surfen können) Die Adresse vom Output und Input darf nicht gleich sein...

                Lange Geschichte.

                Na ja, habe das Problem mit dem document.domain gelöst.




                lg
                ¨¯¨`·-.,¸_¸,.-·´¨¯¨`·-.,¸_¸,.-·´¨¯¨
                ich bin ein teil von jener kraft, die gutes will und böses schafft ...
                -_¸,.-·´¨¯¨`·-.,¸_¸,.-·´¨¯¨`·-.,¸_-

                Kommentar

                Lädt...
                X