Gerd: Nur einen Useragenten zulasssen

Ist es möglich eine .htaccess eines Server-Verzeichnisses so einzustellen, dass nur ein bestimmter Useragent Zugriff auf das Server-Verzeichnis hat?

Für eure Hilfe wäre ich dankbar.

Gruß Gerd

  1. Hallo Gerd.

    Ist es möglich eine .htaccess eines Server-Verzeichnisses so einzustellen, dass nur ein bestimmter Useragent Zugriff auf das Server-Verzeichnis hat?

    Unter Nutzung der SetEnvIf- und Deny-Direktiven solltest du dies umsetzen können.

    Einen schönen Samstag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
  2. Hi,

    Ist es möglich eine .htaccess eines Server-Verzeichnisses so einzustellen, dass nur ein bestimmter Useragent Zugriff auf das Server-Verzeichnis hat?

    nein. Du kannst den Zugriff lediglich so beschränken, dass alle User-Agents, die sich als ein bestimmter User-Agent ausgeben, zugreifen können.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi!

      nein. Du kannst den Zugriff lediglich so beschränken, dass alle User-Agents, die sich als ein bestimmter User-Agent ausgeben, zugreifen können.

      Jep. Und den Useragent-String zu verändern ist gar kein Problem.
      Einige Browser wie der Firefox bieten dafür Addons wie den "Useragent Switcher".
      Aber eigentlich braucht man nicht einmal das.
      Man könnte einfach eine Eingabeaufforderung (Windows), ein Terminal (OS X) oder eine Shell (Linux) öffnen und mittels Telnet selbst HTTP-Kommandos absetzen und somit jeden beliebigen UA-String abschicken.
      Jedes Betriebssystem bringt also bereits die nötigen Mittel dafür mit.

      Wenn deine Frage darauf abzielt, daß nur ein bestimmter UA zugelassen werden soll, weil du dann selbst den UA-String deines Browsers ändern möchtest, um in deinen geschützten Bereich zu kommen, halte ich das für recht schlecht gelöst.
      Klar könntest du nur Clients mit UA-String "Laß mich rein" zulassen.
      Da niemand was davon weiß, kämst dann nur du in diesem Bereich.

      Aber wäre es dann nicht sinnvoller, wenn du einfach Username und Paßwort vergeben würdest?
      Auch das kannst du ja mit htaccess/htpasswd realisieren.

      Schöner Gruß,
      rob

  3. Ist es möglich eine .htaccess eines Server-Verzeichnisses so einzustellen, dass nur ein bestimmter Useragent Zugriff auf das Server-Verzeichnis hat?

    Für eure Hilfe wäre ich dankbar.

    Gruß Gerd

    Schutz eines Verzeichnisses für exklusiv einen UserAgent ist nicht ratsam, da UserAgents sich zuweilen gerne aktualisieren.
    Wenn du im Firefox deine Sprachpräferenzen umstellst, hast du wieder einen neuen Agent.
    Am besten studierst du die Sachlage um die userAgents in den Access Logdateien (sofern diese verfügbar und der UserAgent gespeichert wird).

    Ich selbst filtere auf UserAgents um Unsinn und offensichtlichen Spam zu 90% von meiner HP generell abzuhalten.

    Ein Standard-Beispiel

    BrowserMatch "^$" bad_ua

    Order allow,deny
    allow from ...
    deny from env=bad_ua

    1. Hi,

      Ich selbst filtere auf UserAgents um Unsinn und offensichtlichen Spam zu 90% von meiner HP generell abzuhalten.
      BrowserMatch "^$" bad_ua

      stell bei Dir mal einen[1] User-Agent-String ein, der hierauf matcht, und besuche anschließend http://www.wow-europe.com/de/. Manche meinen, dieser Schutz sei dann doch etwas zu extrem ...

      Cheatah :-)

      [1] ;-)

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. stell bei Dir mal einen[1] User-Agent-String ein, der hierauf matcht, und besuche anschließend http://www.wow-europe.com/de/. Manche meinen, dieser Schutz sei dann doch etwas zu extrem ...

        Der Typ hat offenbar kein Bandbreitenproblem (Kein Mensch hat ein solches Problem)
        Ich habe auch eine 403 Info Seite. Aber die muss man schon erst anklicken.

        PS ich bekam drei Header zurück
        Zweimal redirection

        HTTP/1.1 302 Moved Temporarily
        Date: Sat, 09 Jun 2007 20:38:45 GMT
        Server: Apache
        Set-Cookie: JSESSIONID=EA794FE44F40D4C933BF94407D6206BF.app07_07; Path=/de
        Location: http://www.wow-europe.com/de/index.xml
        Content-Language: en-US
        Content-Length: 0
        Content-Type: text/html;charset=UTF-8

        HTTP/1.1 302 Moved Temporarily
        Date: Sat, 09 Jun 2007 20:38:45 GMT
        Server: Apache
        Set-Cookie: JSESSIONID=E59A86DDFF022F45E9047F216E140C2C.app01_08; Path=/de
        Location: http://www.wow-europe.com/de/index.xml;jsessionid=E59A86DDFF022F45E9047F216E140C2C.app01_08
        Content-Language: en-US
        Content-Length: 0
        Content-Type: application/xml

        HTTP/1.1 200 OK
        Date: Sat, 09 Jun 2007 20:38:46 GMT
        Server: Apache
        Content-Language: en-US
        Transfer-Encoding: chunked
        Content-Type: text/xml;charset=UTF-8

        1. Hi,

          stell bei Dir mal einen[1] User-Agent-String ein, der hierauf matcht, und besuche anschließend http://www.wow-europe.com/de/. Manche meinen, dieser Schutz sei dann doch etwas zu extrem ...
          Der Typ hat offenbar kein Bandbreitenproblem (Kein Mensch hat ein solches Problem)

          der Typ ist die Spiele-Schmiede Blizzard ;-)

          PS ich bekam drei Header zurück
          Zweimal redirection

          Hm, ich bekomme nur den Redirect auf die index.xml, dort ist dann eine Tomcat-Standard-Fehlerseite mit einem Java-Traceback. Dies ist reproduzierbar abhängig vom gesendeten User-Agent aus Seamonkey heraus. Wie hast Du die Request-Header eingestellt?

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. PS ich bekam drei Header zurück
            Zweimal redirection

            Ja, einmal von /de auf /de/, dann von /de/ auf /de/index.xml

            Hm, ich bekomme nur den Redirect auf die index.xml, dort ist dann eine Tomcat-Standard-Fehlerseite mit einem Java-Traceback. Dies ist reproduzierbar abhängig vom gesendeten User-Agent aus Seamonkey heraus. Wie hast Du die Request-Header eingestellt?

            Mit Telnet:

            telnet www.wow-europe.com 80
            Trying 80.239.186.22...
            Connected to www.wow-europe.com.
            Escape character is '^]'.
            GET /de/index.xml HTTP/1.1
            Host: www.wow-europe.com

            HTTP/1.1 500 Internal Server Error
            Date: Sat, 09 Jun 2007 23:36:48 GMT
            Server: Apache
            Content-Length: 2326
            Connection: close
            Content-Type: text/html;charset=utf-8

            <html><head><title>Apache Tomcat/5.5.17 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>java.lang.NullPointerException
                    com.blizzard.wow.web.action.view.BrowserCaps.getCapsFromRequest(BrowserCaps.java:29)
                    com.blizzard.wow.web.action.view.ClientXsltView.doTransform(ClientXsltView.java:135)
                    com.blizzard.wow.web.action.view.ClientXsltView.doTransform(ClientXsltView.java:101)
                    com.blizzard.wow.web.action.view.ClientXsltView.renderMergedOutputModel(ClientXsltView.java:75)
                    com.blizzard.wow.web.action.view.ReloadableCachedXmlView.renderMergedOutputModel(ReloadableCachedXmlView.java:44)
                    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:241)
                    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:678)
                    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:562)
                    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:321)
                    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
                    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:73)
                    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:73)
                    com.blizzard.wow.web.filter.WelcomeFilter.doFilter(WelcomeFilter.java:52)
            </pre></p><p><b>note</b> <u>The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/5.5.17</h3></body></html>Connection closed by foreign host.

            Die Nullpointer Exception tritt wohl in com.blizzard.wow.web.action.view.BrowserCaps.getCapsFromRequest() auf, dem Namen nach würde ich auf eine Routine tippen, die die Fähigkeiten des Browsers anhand der übermittelten Kennung beurteilt und stumpf voraussetzt, das der User-Header immer da ist. Nicht eben die cleverste Idee, aber es schien den Entwlicklern wohl als sinnvoll zu erscheinen. Nur haben sie vergessen, dass nicht jeder User-Agent einen User-Agent-Header übermittelt. Mein telnet aus der BSD-Familie macht das definitiv nicht. ;-) Mit irgendeinem beliebigen User-Agent-Header ("blafasel/0.8.15 (foo bar 3.1415)") tritt die Exception nicht auf.

            Alexander

          2. Wie hast Du die Request-Header eingestellt?

            Gar nicht. Ich bin mit wannabroser.com hingegangen.

            1. Hab ganz vergessen zu sagen: Der UserAgent war "" nix, nada !
              mfg