mit .htaccess geschützte ordner erkennen.

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

  • mit .htaccess geschützte ordner erkennen.

    Ich habe ein Script geschrieben, welches mir erlaubt Ordner und Dateien aufzulisten.

    Jetzt sollen aber Ordner, die per .htaccess geschützt sind mit einem Schlüssel Icon versehen werden. (Ausserdem soll man sich später für diese Verzeichnisse "einloggen" können, aber das kann vorerst mal ausser Acht gelassen werden)


    Gibt es eine Möglichkeit mittels php zu prüfen ob ein Ordner per htaccess geschützt ist?

    Bitte nicht nur links zu php.net posten, dort hab ich schon haufenweise zeugs gelesen aber es bringt mich einfach nicht weiter

    vielen dank für eure Antworten

    gruß, Alex

  • #2
    na, sowas wie isHtaccessProtected() wirst du nicht bekommen.

    aber nachgucken, ob entsprechende datei vorhanden ist und dann noch schnell den inhalt auf bestimmte schlüsselworte prüfen, solltest du ohne weiteres können.

    Kommentar


    • #3
      .htaccess-Dateien in übergeordneten Verzeichnissen müssten aber auch beachtet werden.
      Und HTTP Auth kann ja nicht nur in der .htaccess eingerichtet werden, sondern auch in der Serverkonfiguration ...


      Alternative wäre vielleicht, einen HTTP-Request zu machen (HEAD sollte ausreichen) - und schauen ob die Antwort 401 lautet ...
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Original geschrieben von TobiaZ
        na, sowas wie isHtaccessProtected() wirst du nicht bekommen.
        Schade, genau das hab ich gesucht

        aber nachgucken, ob entsprechende datei vorhanden ist und dann noch schnell den inhalt auf bestimmte schlüsselworte prüfen, solltest du ohne weiteres können.
        Mh und was würde man überprüfen? Ob "htpasswd" und "basic" in der ".htaccess" vorkommen? Irgendwie scheint mir das nicht ganz sinnvoll (wie gesagt die erste Möglichkeit hätte ich bevorzugt )

        Kommentar


        • #5
          Dann schau dir mal den beitrag von wahsaga an. der ist auch nicht so dumm.

          Kommentar


          • #6
            Original geschrieben von wahsaga
            Alternative wäre vielleicht, einen HTTP-Request zu machen (HEAD sollte ausreichen) - und schauen ob die Antwort 401 lautet ...
            mh ich bin mir unsicher was das bedeuten soll. kannst du mir ein code beispiel geben? ich will einen ordner abfragen nicht ein file (kann man einen http-request an einen ordner machen?)

            gruß alex

            Kommentar


            • #7
              Re: mit .htaccess geschützte ordner erkennen.

              Ich würde es über den Status Code überprüfen.
              Wenn Status=='Nicht autorisiert' o.ä., dann ist dieses Verzeichnis geschützt. Selbst noch nicht ausprobiert, nur so eine Idee.

              PHP-Code:
              function gethead($url)
              {
                
              // Gets url ready to use
                 
              $info  = @parse_url$url );

                
              // Opens socket
                
              $fp    = @fsockopen$info["host"], 80$errno$errstr10 );

                
              // Makes sure the socket is open or returns false
                
              if ( !$fp ) {
                   return 
              false;
                } else {

                   
              // Checks the path is not empty
                   
              if( empty( $info["path"] ) ) {

                      
              // If it is empty it fills it
                      
              $info["path"] = "/";
                   }
                   
              $query ""

                   
              // Checks if there is a query string in the url
                   
              if( isset( $info["query"] ) ) {

                        
              // If there is a query string it adds a ? to the front of it
                        
              $query "?".$info["query"]."";
                   }

                   
              // Sets the headers to send
                    
              $out  "HEAD ".$info["path"]."".$query." HTTP/1.0\r\n";
                   
              $out .= "Host: ".$info["host"]."\r\n";
                   
              $out .= "Connection: close \r\n" ;
                   
              $out .= "User-Agent: link_checker/1.1\r\n\r\n";

                   
              // writes the headers out
                   
              fwrite$fp$out );
                   
              $html '';

                   
              // Reads what gets sent back
                   
              while ( !feof$fp ) ) {
                        
              $html .= fread$fp8192 );
                   }

                   
              // Closes socket
                   
              fclose$fp );
                }
                return 
              $html;
              }

              function 
              getstatuscode$header )
              {

                
              // Splits the headers into an array
                
              $headers explode"\r\n"$header );
                unset( 
              $header );
                for( 
              $i=0;isset( $headers[$i] );$i++ ) {

                  
              // Checks if the header is the status header
                  
              if( preg_match"/HTTP\/[0-9A-Za-z +]/i" ,$headers[$i] ) ) {

                    
              // If it is save the status
                    
              $status preg_replace"/http\/[0-9]\.[0-9]/i","",$headers[$i] );
                  }
                }
                return 
              $status;

              www.createpage.net
              www.immobilien-ohne-makler.de

              Kommentar


              • #8
                öhm

                sorry aber der code bringt mir glaube ich jetzt garnichts und was du sagen willst ist mir auch nicht klar

                Kommentar


                • #9
                  tja, das hört sich an, wie die "ich versteh nicht, wie geht das" haltung an...

                  Kommentar


                  • #10
                    Original geschrieben von amarok
                    ich will einen ordner abfragen nicht ein file (kann man einen http-request an einen ordner machen?)
                    Natürlich, das macht man doch andauernd, wenn man über http://example.com/ordner/ ein Verzeichnislisting anfordert (und entweder dieses, oder ein Forbidden bekommt).
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar

                    Lädt...
                    X