heinetz: PHP Seiten im Firmennetzwerk

Hallo Forum,

Kann ich php-seitig sicher erkennen, ob der User meine Seite über einen bestimmten Proxy-Server (aus einem bestimmten Firmannetzwerk) aufgrufen
hat ?

danke und

beste gruesse,
heinetz

  1. Moin!

    Kann ich php-seitig sicher erkennen, ob der User meine Seite über einen bestimmten Proxy-Server (aus einem bestimmten Firmannetzwerk) aufgrufen hat?

    Du kannst eindeutig feststellen, mit welcher IP-Adresse du kommunizierst.

    Ob das ein Proxy-Server ist, ob die IP immer zu einer bestimmten Firma gehört, etc, kannst du mittels der IP allerdings nicht feststellen, dazu benötigst du Metainformationen, die du auf anderen Wegen erhalten mußt (z.B. Nachfragen beim Firmenadmin).

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Moin Sven,

      Du kannst eindeutig feststellen, mit welcher IP-Adresse du kommunizierst.

      Ich weiss halt nicht so genau, was genau ein Proxy-Server macht bzw.
      wie der arbeitet. Deshalb konkret gefragt:

      echo $_SERVER['REMOTE_ADDR'];

      gibt mir die IP-Adresse, mit der ich im Netz bin aus. Das ist z.Z. die
      dynamische IP meines Routers. Wenn ich die Seite also aus diesem
      Firmennetzwerk aufrufe, stünde da die IP-Adresse des Proxy-Servers ?

      Wenn ich also diese IP-Adresse, wüsste, könnte ich darauf abfragen und
      die Ausgabe entsprechend anpassen. Korrekt ? Das ganze funktioniert
      natürlich nur, wenn diese IP-Adresse nicht wie bei mir dynamisch, sondern
      fix wäre.

      ERGO: Der Proxyserver ist in dem Fall das selbe, wie mein Router

      alles richtig ?

      beste gruesse,
      martin

      1. Hi,

        ein Nachtrag:

        Mein Kunde hat mir folgenden Link zukommen lassen:

        http://www.leader.ru/secure/who.html

        Auf der Seite steht:

        'Client's hostname' : 'c157076.adsl.hansenet.de'.

        • Was genau ist das ?
        • Woher kommt die Information ?
        • Lässt nicht genau das Rückschlüsse auf einen Proxyserver zu ?

        danke für Tipps und

        beste gruesse,
        heinetz

        1. Hallo,

          http://www.leader.ru/secure/who.html
          Auf der Seite steht:
          'Client's hostname' : 'c157076.adsl.hansenet.de'.

          • Was genau ist das ?

          das bedeutet, dass der Kunde einen DSL-Anschluss des Providers Hansenet benutzt, und dass dein Kunde aus dem ersten Teil des Hostnamens eine Stelle unterschlagen hat - das hätten wohl acht Stellen sein sollen, die die momentane IP-Adresse des Kunden in hexadezimaler Schreibweise darstellen.

          • Woher kommt die Information ?

          Aus dem Reverse-DNS-Eintrag. Der Server nimmt die IP-Adresse des Requests und fragt einen DNS-Server, welcher Hostname zu dieser IP gehört (Reverse Lookup). Wenn er Glück hat, bekommt er eine Antwort; wenn er viel Glück hat, bekommt er sogar *genau eine* Antwort.

          • Lässt nicht genau das Rückschlüsse auf einen Proxyserver zu ?

          Vielleicht. Wenn überhaupt einer verwendet wurde. In diesem Fall sieht es nicht danach aus.

          So long,
           Martin

          PS: Du plenkst!

          --
          Noch Fragen? - Ich weiß es auch nicht.
          1. Hi,

            obwohl's an der Sache an sich nicht's ändert, aber ich habe mich falsch
            ausgedrückt. Also präziser:

            Der Kunde hat mir einen Link geschickt, den habe ich aufgerufen und
            entsprechend werden die Infos zu meinem Client ausgeworfen. Ergo:
            ICH habe den Anschluss bei Hansenet - aber das spielt ja keine Rolle.

            Aber zum Reverse Lookup:
            ------------------------
            Kann ich das einfach mit ein paar Zeilen PHP machen, um dann auf der
            Seite z.B. 'adsl.hansenet.de' auszugeben?

            Und zum Proxy:
            --------------
            Bei meiner Verbindung wird wahrscheinlich kein Proxy verwendet, aber
            devinitiv wird bei der Verbindung meines Kunden eine verwednet.
            Interessant finde ich aber Deine Aussage, dass es nicht so aussähe,
            als würde einer verwendet. Weisst Du einfach, dass bei Hansenet keiner verwendet wird, oder woran machst Du das fest ?

            beste gruesse,
            martin

            1. Hallo,

              Bei meiner Verbindung wird wahrscheinlich kein Proxy verwendet, aber
              devinitiv wird bei der Verbindung meines Kunden eine verwednet.
              Interessant finde ich aber Deine Aussage, dass es nicht so aussähe,
              als würde einer verwendet. Weisst Du einfach, dass bei Hansenet keiner verwendet wird, oder woran machst Du das fest ?

              Die IP bzw. der zugehörige Domainname des Clients der die Website vom Server aufgerufen hat (du) hat das typische Schema eines Otto-Normal Kunden eines Internetanbieters (hier Hansenet) mit dynamischer IP.
              Die Aussage, dass kein Proxy verwendet wurde, kann man daraus nicht ziehen. Die Aussage, dass kein öffentlicher Proxy verwendet wurde aber sehr wohl. Sofern ein Proxy verwendet wurde, müsste sich dieser hinter dem Internetanschluss befunden haben, also in deinem lokalen Netzwerk oder direkt auf deinem PC zuhause.
              Ein öffentlicher Proxy dagegen hätte eine feste IP und in der Regel einen aussagekräftigen Domainnamen (Beispiel: www-proxy.t-online.de ist der Domainname eines Proxys von T-Online).

              Zu deiner Firmen-Proxy Geschichte.

              Wo befinden sich Proxy und Webserver in Relation zum Firmennetzwerk?

              Wenn der Proxy innerhalb des Firmennetzwerks ist, und der Webserver ebenfalls, dann ist eine Identifikation via IP garkein Problem.
              Befindet sich der Proxy im Firmennetz, aber der Webserver ausserhalb, kommt es darauf an, ob der Proxy der Firma eine aus dem Internet eindeutige IP hat, oder aber ob das gesamte Firmennetz eine einzige öffentliche IP hat. Bei letzterem ist auch relevant, ob die IP dynamisch oder statisch ist.
              Wenn der Proxy ausserhalb des Firmennetzes liegt, ist die Frage ob dieser öffentlich ist, oder aber der Firma gehört (z.B. im Netz einer anderen Niederlassung).
              Es gibt hier sehr viele Faktoren die durchaus wichtig sind...

              Gruß,
              Andreas

              1. Hi,

                Sofern ein Proxy verwendet wurde, müsste sich dieser hinter dem Internetanschluss befunden haben, also in deinem lokalen Netzwerk oder direkt auf deinem PC zuhause.

                ... oder es ist ein transparenter Proxy innerhalb der Netzwerk-Infrastruktur von Hansenet. :-)

                Ciao,
                 Martin

                --
                Programmierer (m), seltener auch ~in (w):
                Irdische, i.a. humanoide Lebensform, die in einem komplizierten biochemischen Prozess Kaffee, Cola und Pizza in maschinenlesbaren Programmcode umwandelt.
                P~ bilden gelegentlich mit ihresgleichen kleine Gruppen, sogenannte Communities, sind aber ansonsten meist scheue Einzelgänger.
                P~ sind vorwiegend nachtaktiv und ohne technische Hilfsmittel nur eingeschränkt lebensfähig.
                1. Hi,

                  ... oder es ist ein transparenter Proxy innerhalb der Netzwerk-Infrastruktur von Hansenet. :-)

                  Halte ich für sehr unwahrscheinlich...

                  Einen Proxy so aufzubauen, dass er das hier beobachtete Verhalten an den Tag legt, wäre zwar technisch schon möglich, aber mit einem Aufwand verbunden der sich hier wohl nicht rechnet. Ich wüßte nicht, dass Internetanbieter soetwas machen. Aber wenn du da konkretes weißt, ich lass mich gern belehren.

                  Gruß,
                  Andreas

            2. Hallo,

              Aber zum Reverse Lookup:

              Kann ich das einfach mit ein paar Zeilen PHP machen, um dann auf der
              Seite z.B. 'adsl.hansenet.de' auszugeben?

              Ja. RTFM!

              Grüße

              Vinzenz

    2. Hi,

      ich habe jetzt folgenden Test gemacht:

      for (reset($_SERVER);$key=key($_SERVER);next($_SERVER))
         {
          echo "key:".$key." val: ".$_SERVER[$key];
         }

      Dieses Test-Script habe ich einmal von meinem Arbeitsplatz
      aus aufgrufen und den Kunden, der hinter dem Proxy sitzt,
      gebeten das auch mal zu tun und mir die Ausgabe mitzuteilen.

      Die einzige Information, die sich in beiden Ausgaben
      unterscheidet, die irgendetwas mit dem Netzwerk zu
      tun hat, ist die Ausgabe von $_SERVER['REMOTE_ADDR']

      Grundsätzlich würde ich sagen, mehr als in der Variable
      $_SERVER habe ich nicht zur Verfügung, um eine Aussage
      bzgl. des Netzwerks aus dem aufgerufen wird zu machen.
      Das setzt voraus, dass es sich dabei um den Proxy-Server
      handelt.

      Ist das richtig ?

      Ich hatte etwas von 'HTTP_X_FORWARDED_FOR' gelesen, was wohl
      irgendwie in den Zusammenhang mit dem Proxy stellen hätte
      können, aber der Wert wird ja nun irgendwie nicht gesetzt.

      danke für Tipps und

      beste gruesse,
      heinetz

  2. Hi,

    Kann ich php-seitig sicher erkennen, ob der User meine Seite über einen bestimmten Proxy-Server (aus einem bestimmten Firmannetzwerk) aufgrufen
    hat ?

    Ja, das kannst du. Wie du teilweise schon selbst erkannt hast, steht die IP Adresse des verwendeten Proxies (oder des Clients, wenn er selbst keinen Proxy verwendet) in der Variable $_SERVER['REMOTE_ADDR'].
    Da es hier um eine firmeninterne Angelegenheit geht, müsste die IP Adresse des Proxies fest sein und auch eindeutig identifizierbar. Das solltest du aber am besten durch Nachfragen bei einem Admin klären, es wäre nämlich auch möglich dass dich die Anfragen des Proxies über einen NAT Router erreichen, dann könnten auch noch andere (firmeninterne) Clients hinter dieser IP stecken.
    Das HTTP_X_FORWARDED_FOR ignoriere bitte, das nennt dir die IP des Clients der den Proxy benutzt, diese Angabe ist allerdings beliebig fälschbar!

    Gruß,
    Andreas