Verzeichnislisting Passwort schützen

Sliver

Erfahrenes Mitglied
Grüße,

also ich hab im Forum geschon gesucht und auch gefunden.
Hier mal kurz die Grunddaten:

http://www.ewigweh.de/testen/
Passwort: supernova

So jetzt zu meinem ersten Problem:

Im Ordner "testen" befinden sich 3 weitere Ordner "bla", "blub" und "bumm", nun soll es wie folgt laufen:

Gibt man das Passwort "supernova" ein soll man auf "bla" geleitet werden
Gibt man das Passwort "halloweltc" ein soll man auf "blub" geleitet werden
Gibt man ein falsches Passwort ein soll man auf "bumm" geleitet werden

Wie kann ich das einrichten?

Jetzt mein zweites Problem:
Ich glaube das ist etwas schwieriger.

Wenn ich jetzt eingebe "www.ewigweh.de/testen/blub/" komme ich trotz Passwortabfrage im Hauptverzeichnis auf die Seite, auch ohne Passwort. Und man hätte auch weiterhin Zugriff auf alle anderen Untergeordneten Ordner.

Wie ändere ich das?

Hier meine .htaccess die sich im Ordner /testen/ befindet:
Code:
Options +Indexes

Und hier meine index.php im gleichen Ordner:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Einfache Passwortabfrage</title>
</head>
<body>
<script type="text/javascript">
    var pw = prompt("Bitte Passwort eingeben","");
    if(pw != 'supernova'){
        alert("Sie werden Weitergeleitet");
        window.location.href="http://www.ewigweh.de/teryn/accmusic.mp3";
    }
    else{
        alert("Ok");
    }
</script>
</body>
</html>


<?
/***********************************
*  list.php - (c) 2002 by psycco   *
*          www.psycco.de           *
*                                  *
* This source is distributed under *
*  GNU/GPL General Public License  *
***********************************/

class _file {
   var $name;
   var $size;
   var $lastModified;
   var $isDir;
}

function getFileImage($filename) {

   // feel free to add more extensions,
   // a list of the standart icons shipped with
   // apache can be found in the /Apache/icons-folder
   // .. where is it on linux machines?

   $extension = '';
   for($i=strlen($filename);$i>0;$i--) {
      if($filename[$i] == '.') {
         $extension = strtolower(substr($filename, $i-strlen($filename)));
         break;
      }
   }

   if(is_dir($filename))
      return '/.icons/dir.gif';
   elseif($extension == '.gif' || $extension == '.png' || $extension == '.bmp' || $extension == '.jpg')
      return '/.icons/image2.gif';
   else if($extension == '.txt' || $extension == '.htm' || $extension == '.html' || $extension == '.css')
      return '/.icons/text.gif';
   elseif($extension == '.zip' || $extension == '.rar' || $extension == '.ace' || $extension == '.gz')
      return '/.icons/compressed.gif';
   elseif($extension == '.avi' || $extension == '.mov' || $extension == '.mpg' || $extension == '.mpeg' || $extension == '.divx')
      return '/.icons/movie.gif';
   elseif($extension == '.wav' || $extension == '.mp3' || $extension == '.snd')
      return '/.icons/sound2.gif';
   elseif($extension == '.exe')
      return '/.icons/binary.gif';
   else
      return '/.icons/unknown.gif';
}

function shorten($file) {
   if(strlen($file) > 23) {
      $retval = substr($file,0,20) . '..&gt;';
      return $retval;
   } else {
      return $file;
   }
}

function spaces($file) {
   $retvar = '';
   if(strlen($file) >= 23)
      return ' ';
   else {
      for($i=0;$i<(24-strlen($file));$i++)
         $retval .= ' ';

      return $retval;
   }
}

function _filesize($size) {
   if($size >= 1024)
      return bcdiv($size,1024,1).'k';
   elseif($size >= 1048576)
      return bcdiv($size,1048576,1).'M';
   elseif($size >= 1073741824)
      return bcdiv($size,1073741824,1).'G';
   else
      return $size;
}

function cmp ($a, $b) {
    global $sortBy, $order;
    if ($a->$sortBy == $b->$sortBy) return 0;
    return ($a->$sortBy > $b->$sortBy) ? $order : ($order*-1);
}

if($showsource <> 1) {

   $sortBy = '';
   $order = '';

   if(!isset($C) || $C == 'D') $C = 'N';
   if(!isset($O)) $O = 'A';

   if($C == 'N') $sortBy = 'name';
   if($C == 'M') $sortBy = 'lastModified';
   if($C == 'S') $sortBy = 'size';

   if($O == 'A')
      $order = 1;
   else
      $order = -1;

   // anybody knows how to get the description of the file?

   $files = Array();
   $dummy = new _file;
   $d = dir('.');
   $i = 0;

   while ($entry = $d->read()) {
      if($entry != '.' && $entry != '..' && $entry != substr($PHP_SELF,1) && substr($entry,0,1) != '.') {
         $dummy->name = $entry;
         $dummy->size = filesize($entry) ? filesize($entry) : '-';
         $dummy->lastModified = filemtime($entry);
         $dummy->isDir = is_dir($entry);

         $files[$i] = $dummy;

         $i++;
      }
   }

   $d->close();
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
 <HEAD>
  <TITLE>Index of <? echo substr($PATH_INFO, 0, strlen($PATH_INFO)-strlen($PHP_SELF)+1); ?></TITLE>
 </HEAD>
 <BODY>
<H1>Index of <? echo substr($PATH_INFO, 0, strlen($PATH_INFO)-strlen($PHP_SELF)+1); ?></H1>
<PRE><IMG SRC="/.icons/blank.gif" ALT="     "> <A HREF="?C=N&O=<? if($O == 'A') echo 'D'; else echo 'A'; ?>">Name</A>                    <A HREF="?C=M&O=<? if($O == 'A') echo 'D'; else echo 'A'; ?>">Last modified</A>       <A HREF="?C=S&O=<? if($O == 'A') echo 'D'; else echo 'A'; ?>">Size</A>  <A HREF="?C=D&O=<? if($O == 'A') echo 'D'; else echo 'A'; ?>">Description</A>
<HR />
<IMG SRC="/.icons/back.gif" ALT="[DIR]"> <A HREF="..">Parent Directory</A>        <?=date('d-M-Y H:i', filemtime('..'))?>   -
<?

   usort($files, 'cmp');
   for($i=0;$i<count($files);$i++) {
      echo '<IMG SRC="'.getFileImage($files[$i]->name).'" ALT="[IMG]"> <A HREF="'.$files[$i]->name.'">'.shorten($files[$i]->name).'</A>'.spaces($files[$i]->name).date('d-M-Y H:i', $files[$i]->lastModified).'   '._filesize($files[$i]->size).'  '."\n";
   }

?>
<HR /></PRE>
<?

   echo substr($SERVER_SIGNATURE,0,strlen($SERVER_SIGNATURE)-11).' (powered by <a href="'.$PHP_SELF.'?showsource=1">list.php</a>)</address>';

?>
</BODY></HTML>
<?

} else {
   highlight_file('.'.$PHP_SELF);
}
?>

Vielen Dank im Vorraus.
Sliver
 
Hi,

mach es mit htaccess.
Im Anhang findest du ein sehr gelungenes Script das dir schnell und einfach eine Zugriffverwaltung bastelt.
Und wenn das nicht hilft schau dir das mal an.

MArc


PS: Einfach das ".txt" in ".php" umändern.
 

Anhänge

  • 25183attachment.c
    16 KB · Aufrufe: 59
Zurück