ingo: mit javascript fremde seite durchsuchen nicht möglich ?

mit javascript fremde seite durchsuchen nicht möglich ?

hallo,

für ein kunstmedienprojekt habe ich ein javascript geschrieben, welches die links
                  auf einer anderen seite checkt. das klappt auch wunderbar, solange die seite
                  auf meinem server liegt. will ich aber die links z.b. einer suchmaschine checken,
                  dann kriege ich nur einen error: access denied from this domain to xyz... kann
                  mir da jemand helfen ? am beste noch schnell (und sogar per mail?). es wäre
                  superwichtig.

ich danke euch schonmal im voraus !

die unten aufgeführte url zeigt das beispiel dazu.

ingo

  1. Hallo Ingo!

    für ein kunstmedienprojekt habe ich ein javascript geschrieben, welches die links
    auf einer anderen seite checkt. das klappt auch wunderbar, solange die seite
    auf meinem server liegt. will ich aber die links z.b. einer suchmaschine checken,
    dann kriege ich nur einen error: access denied from this domain to xyz...

    Ja, das ist ein JS-Sicherheitskonzept, die "Same origin policy". Prinzipiell darfst Du nicht auf Dokumente von anderen Domains zugreifen (weil dort ja z.B. eine Kreditkartennummer stehen koennte, die Dich nichts angeht). Auf http://developer.netscape.com/docs/manuals/js/client/jsguide/sec.htm#1015705 findest Du etwas mehr darueber. Dort steht auch, dass Du Deine document.domain-Eigenschaft entsprechend setzen koenntest. Wenn dies dann auch die zu durchsuchende Seite tut (die muss also kooperativ sein), koenntest Du das hinkriegen. Probiert habe ich das noch nie. Siehe des weiteren http://developer.netscape.com/docs/manuals/js/client/jsref/document.htm#1193628.

    So long

    1. wow !

      das nenne ich mal eine gute antwort. vielen dank !

      ingo

    2. Hallo Leute,

      mich interessiert diese Probematik auch, da ich vor einen ähnlichen Problem stehe. Ich würde gern, für eine Tippgemeinschaft,  die Quoten von einen Onlinewettbüro automatisch auslesen und in eine Datenbank schreiben. Dazu dachte ich mir, die Seite mir der Tabelle der Quoten in ein Frame zu laden und auszuwerten. Leider komme ich aber nicht an die Daten ran. Nun lese ich folgendes :

      dann kriege ich nur einen error: access denied from this domain to xyz...

      Ja, das ist ein JS-Sicherheitskonzept, die "Same origin policy". Prinzipiell darfst Du nicht auf Dokumente von anderen Domains zugreifen (weil dort ja z.B. eine Kreditkartennummer stehen koennte, die Dich nichts angeht).

      Dies ist aber doch völlig unlogisch, da man den Quellcode doch jederzeit angucken bzw. wegspeichen und dann auswerten kann. Das heißt doch nur, daß ich ein Umweg machen muß. Also warum kann ich nicht ein öffentliches Document durchchecken, schliesslich könnte ich mir die Daten ja auch durchlesen und die Kreditkartennummer abschreiben. Desweiteren ist es mir einigen anderen Programmiersprachen überhaupt kein Problem Seiten aufzurufen und direkt auszuwerten.

      Ausserdem kann ich mir nicht vorstellen, daß jemand Daten ungeschütz ins Netz stellt, die mich nichts angehen.

      Ich würde mich sehr freuen, wenn mir jemand diese Logik dieses JS-Sicherheitskonzept genauer erklären könnte.

      Grüße
      Dettmer

      1. Hallo Dettmer!

        Dies ist aber doch völlig unlogisch, da man den Quellcode doch jederzeit angucken bzw. wegspeichen und dann auswerten kann.

        Es geht hier weniger um statische Seiteninhalte. Klar, die lohnt es nicht zu schuetzen. Und in solchen wuerden auch kaum vertrauliche Informationen zu finden sein. Es geht vielmehr um solche Dinge wie Formularinhalte, die ueber JS ausgelesen werden koennten (oder z.B. koennte auch die Action-Angabe geaendert werden, sodass das Formular ganz woanders hin geschickt wird). Desweitern muss die Seite ja keine statische sein, sondern kann von einem CGI-Script in Abhaengigkeit von einer vorher eingegebenen Authentifikation generiert worden sein, wo dann sehr wohl vertrauliche Daten praesentiert werden koennten. Dem gewitzen Cracker fallen sicher noch viel mehr Moeglichkeiten des Missbrauchs ein. Also ganz aus der Luft gegriffen ist diese Policy nicht.

        Was Dein Lotto-Problem angeht, wirst Du wohl so einen anderen Weg gehen muessen, sprich, eine serverseitige Loesung einsetzen muessen (mit Perl kein Thema). Der Unterschied bezueglich der Sicherheit ist dann aber, dass irgendwelche Dinge, die der andere Webserver im Falle der direkten Kommunikation mit dem User wuesste (bishin zur Identitaet), Dir nicht bekannt sind, und damit auch nicht bei der Kommunikation von Deinem Script mit dem anderen Server.

        So long