MrSchmidtdtdt: Domain in Quelltext verstecken?

Hallo,

Vorab:
1. Gefragt ist eine Lösung, die mit einer einzigen Datei auskommt.
2. Die Datei muss im Browser dargestellt werden können.

Ich öffne eine Seite, die mittels Ajax diverse Operationen durchführt. Die Anfragen gehen an einen Server mit wechselnder IP Adresse, die sich beispielsweise stündlich ändert. Ich suche nun nach einer Möglichkeit, meine Ajax-Requests immer an die aktuelle IP zu schicken, welche auch im Quelltext zu lesen sein darf. Welche Möglichkeiten gibt es?

Vielen Dank,
MrSchmidtdt

  1. Moin Moin!

    [...] Die Anfragen gehen an einen Server mit wechselnder IP Adresse [...] Welche Möglichkeiten gibt es?

    DNS, insbesondere DynDNS. Anbieter für letzteres gibt es reichlich.

    Basteleien in Javascript sind vollkommen unnötig und alles andere als zuverlässig.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. Hi,

      DNS, insbesondere DynDNS. Anbieter für letzteres gibt es reichlich.

      Ich möchte nicht, dass der Server über eine statische Domain/Weiterleitung erreichbar ist. Gerade dies ist der Grund für den stündlichen IP-Wechsel. Die erfasste IP eines eventuellen HTTP-Logs soll nach besagter Stunde ins leere laufen. Nur der Client (Die besagte JS-Seite) hat die aktuelle IP und muss sich diese irgendwie dynamisch zusammenfriemeln. Ich denke die einfachste Methode wäre die Ausgabe der IP mittels PHP und die nachträgliche Erfassung im JS. Aber wie? Das JS braucht die Daten bereits im <head>.

      1. Hallo,

        DNS, insbesondere DynDNS. Anbieter für letzteres gibt es reichlich.
        Ich möchte nicht, dass der Server über eine statische Domain/Weiterleitung erreichbar ist.

        für die erste "Kontaktaufnahme" brauchst du das aber zwingend, denn in dem Moment wäre eine stetig wechselnde IP-Adresse dem Client ja noch nicht bekannt.

        Gerade dies ist der Grund für den stündlichen IP-Wechsel. Die erfasste IP eines eventuellen HTTP-Logs soll nach besagter Stunde ins leere laufen.

        Hmm. Verstehen muss ich das aber nicht, oder?

        Nur der Client (Die besagte JS-Seite) hat die aktuelle IP und muss sich diese irgendwie dynamisch zusammenfriemeln. Ich denke die einfachste Methode wäre die Ausgabe der IP mittels PHP und die nachträgliche Erfassung im JS.

        Nein. Du brauchst *eine* Stelle, wo der Client für den ersten Request die aktuelle IP-Adresse nachschlagen kann. Das könnte ein dyndns-Mechanismus sein, also ein "normaler" DNS-Lookup; es könnte auch eine bekannte, unter einer festen URL erreichbare Ressource sein. Aber wie du dich auch drehst und wendest, diesen ersten Einstieg brauchst du, ansonsten wäre es das klassische Henne-Ei-Problem: Du willst die Post aus dem Briefkasten holen, aber der dazu erforderliche Schlüssel liegt im Briefkasten.

        Wenn der Client dann einmal erfolgreich Kontakt zum gewünschten Server ausgenommen hat, könnte der in der Response zusätzlich die Info unterbringen: Beim nächsten Request wird meine IP-Adresse a.b.c.d sein.

        So long,
         Martin

        --
        Die letzten Worte des Privatdetektivs:
        Jetzt wird es mir klar: SIE sind der Mörder!
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Hallo,

          für die erste "Kontaktaufnahme" brauchst du das aber zwingend, denn in dem Moment wäre eine stetig wechselnde IP-Adresse dem Client ja noch nicht bekannt.

          Ich habe bereits eingeräumt, dass der Client sich durchaus auf dem Server befinden darf. Und dort kann ich mittels PHP zuvor die eigene IP ausgeben und über das JS einlesen. Oder etwa nicht?

          Wie der User in erster Linie dann an die IP kommt, spielt an dieser Stelle keine Rolle.

          Hmm. Verstehen muss ich das aber nicht, oder?

          Was genau ist daran denn nicht zu verstehen?

          Nein. Du brauchst *eine* Stelle, wo der Client für den ersten Request die aktuelle IP-Adresse nachschlagen kann.

          Wie gesagt, die IP-Adresse soll bereits vorher in den Quelltext generiert werden. Dort kann das JS sich diese dann ja holen.

          1. Hi,

            für die erste "Kontaktaufnahme" brauchst du das aber zwingend, denn in dem Moment wäre eine stetig wechselnde IP-Adresse dem Client ja noch nicht bekannt.
            Ich habe bereits eingeräumt, dass der Client sich durchaus auf dem Server befinden darf.

            hast du das? Ich kann keinen Hinweis darauf finden. Und selbst wenn, dann ist mir deine geplante Infrastruktur erst recht schleierhaft. Wieso soll ein Javascript die IP-Adresse des Hosts kennen, auf dem es selbst läuft, obwohl die durch das IP-Protokoll schon festgelegt ist? Wieso sollte ein JS überhaupt per AJAX über HTTP auf localhost zugreifen?

            Und dort kann ich mittels PHP zuvor die eigene IP ausgeben und über das JS einlesen.

            Klar. Das wäre dann die 127.0.0.1 (localhost).

            Hmm. Verstehen muss ich das aber nicht, oder?
            Was genau ist daran denn nicht zu verstehen?

            So einiges:
             * Was läuft wo?
             * Was soll das beschriebene Javascript tun?
             * Was ist der Zweck des ganzen Systems?
             * Warum ist die IP-Adresse so "heikel"?

            Nein. Du brauchst *eine* Stelle, wo der Client für den ersten Request die aktuelle IP-Adresse nachschlagen kann.
            Wie gesagt, die IP-Adresse soll bereits vorher in den Quelltext generiert werden. Dort kann das JS sich diese dann ja holen.

            Aha. Der Hausmeister (Server/PHP), der unten im Erdgeschoss wohnt, legt mir (Client/JS) einen Zettel in den Briefkasten, auf dem nochmal steht, wo er wohnt. Für den Fall, dass ich es noch nicht wusste.
            Wie gesagt, ich verstehe immer noch nicht, was das alles für einen Zweck haben soll.

            Ciao,
             Martin

            --
            Du kannst dem Leben nicht mehr Tage geben.
            Aber dem Tag mehr Leben.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Hi und danke für die schnelle Antwort,

              hast du das? Ich kann keinen Hinweis darauf finden.

              Sorry, mein Fehler. Ich dachte, ich hätte es im ersten Posting erwähnt.

              Klar. Das wäre dann die 127.0.0.1 (localhost).

              Über gethostbyname('blub.dyndns.org') z.B. bekomme ich die externe IP und kann  dann über Ajax meine Requests dorthin senden. Da der PHP-Teil serverseitig ausgeführt wird, sieht niemand die DNS.

              So einiges:
              * Was läuft wo?

              Sowohl Client(JS) als auch das verarbeitende Script(PHP) befindet sich auf meinem Server

              * Was soll das beschriebene Javascript tun?

              Daten an den Server senden. Unter Anderem auch Text.

              * Was ist der Zweck des ganzen Systems?

              Sagen wir, es ist ein Chat.

              * Warum ist die IP-Adresse so "heikel"?

              Angenommen der Chat soll in einem Netzwerk laufen, dessen Verwalter Datenschutz sehr "locker" sieht. Nun möchte ich vermeiden, dass irgendwer irgendwas auf irgendwen zurückführen kann. Dann tauchen im Log halt irgendwelche IPs auf, die nicht mehr erreichbar sind, an die irgendein verschlüsselter Text (der Schlüssel liegt auf dem Server) gesendet wird.

              Aha. Der Hausmeister (Server/PHP), der unten im Erdgeschoss wohnt, legt mir (Client/JS) einen Zettel in den Briefkasten, auf dem nochmal steht, wo er wohnt. Der Hausmeister ist der Einzige, der weiß wo er wohnt und gibt dem Client jede Stunde ein neues Postfach. Das beide im selben Haus wohnen, weiß zwar der Hausmeister, der Client jedoch nicht. In dessen Quelltext ist nämlich nur die dynamische IP zu lesen.

              So in etwa stelle ich mir das vor. Fällt dir dazu etwas ein?

              1. Moin Moin!

                Angenommen der Chat soll in einem Netzwerk laufen, dessen Verwalter Datenschutz sehr "locker" sieht. Nun möchte ich vermeiden, dass irgendwer irgendwas auf irgendwen zurückführen kann. Dann tauchen im Log halt irgendwelche IPs auf, die nicht mehr erreichbar sind, an die irgendein verschlüsselter Text (der Schlüssel liegt auf dem Server) gesendet wird.

                Du redest wirr.

                Wenn Client und Server auf der selben Maschine laufen, reden die beiden in aller Regel über 127.0.0.0/8 oder ::1 miteinander. Alles Theater mit anderen IP-Adressen bremst nur, bringt aber keinerlei Sicherheitsgewinn. Was auch immer Du anstellst, damit die Maschine sich selbst unter mehr oder weniger frei erfundenen IP-Adressen erreichen kann, kann der "Verwalter" einsehen und mitschneiden.

                Wenn Du Probleme damit hast, dass der "Verwalter" ins Log-File sehen kann, dann solltest Du bei dem "Verwalter" keine Maschine laufen lassen. Schon gar nicht, wenn Du auch noch Ver- und Entschlüsselungscode UND den Schlüssel auf die Maschine packst. Das ist ein sehr sicheres Zeichen dafür, dass Du von sicherer Verschlüsselung keinen Plan hast.

                Erklär bitte Dein konkretes Problem, was Du bislang zusammenphantasiert hast, funktioniert nämlich nicht.

                Wenn Du schwer nachzuvollziehende Kommunikationswege benötigst, mach Dich über TOR schlau.

                Wenn Du gesicherte Kommunikationswege benötigst, mach Dich über Public-Key-Verfahren und VPNs schlau.

                Alexander

                --
                Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".