Files werden trotz .htaccess angezeigt.
Günther
- php
Hallo Leute!
Ich hoffe mir kann jemand helfen sonst verzweifle ich noch total.
Also ich habe folgendes Problem:
Hab mir da ein tolles Script heruntergeladen zum auflisten und verlinken der Files eines Ordners am Webserver.
Das funzt alles tadelos. Aber mein Problem ist das ich die Ordner mit .htaccess Datein schützen will. Das geht auch und die Files sind auch nicht anzeigbar. Aber die Dateinamen sind trotzdem sichtbar.
Und ich weis einfach nicht was ich machen soll das die Files nicht angezeigt werden wenn der Ordner wo si liegen .htacces geschützt ist.
Der Autor vom Script hat leider auf mein Mail nicht geantwortet.
So hoffe ich das mir hier jemand weiterhelfen kann.
Abei findet Ihr auch das Script.
Für Antworten bin ich sehr Dankbar!
Günther
-----------------------------------------------
<style type="text/css">
<!--
a:link {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-style: normal;
color: #666666;
text-decoration: none;
}
a:visited {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-style: normal;
color: #666666;
text-decoration: none;
}
a:hover {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-style: normal;
color: #000000;
text-decoration: none;
}
a:active {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-style: normal;
color: #000000;
text-decoration: none;
}
-->
</style>
<body background="../../images/back_line_nav2.gif" leftmargin="0" topmargin="0" marginwidth="0" marginheight="10">
<br>
<table width="130" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="2"> </td>
<td width="10">
<?
//dfb.php - Directory- and File Browser
//copyright: Ralf Schmitt, ralf_schmitt@yahoo.de, March 2003
$prefs = array(
'rootDName' => 'Mein Verzeichnis:',
'ind' => ' ',
'showURHere'=> 0,
//'dbStyle_1' => '<div style="font-size:bigger;font-weight:bold">',
//'dbStyle_2' => '</div><hr noshade size="1">',
//'dbSep' => ' <b>></b> ',
//'firstLstyle_1' => '<span style="color:black;">',
//'firstLstyle_2' => '</span>',
//'subLstyle_1' => '<span style="color:magenta;">',
//'subLstyle_2' => '</span>',
'showDirLevels' => '0',
'skipDirPrefix' => '_',
'neverShowSkipD' => 0,
'firstLSeparator' => '',
'showDAsLnk' => 1,
'showFAsLnk' => 1,
'showFiles' => 1,
'showFsize' => 0,
'showAllFiles' => 0,
'sfOnlyCurDir' => 0,
'hideScript'=> 1,
'fType' => array('mp3','txt','inc','php','htm','pdf','gif','zip','exe','doc'),
'fPics' => array(6,3,3,3,7,4,2,8,9,10),
'showPics' => 1,
'pics'=> array('1x1.gif','folder.gif','pic.jpg','text.jpg','pdf.jpg','ie.gif','mp3.gif','ns.gif','zip.gif','standard.gif','doc.gif'),
'picPath' => '_icons/',
'noFiles' => '',
'errMess' => 'Invalid Path!',
'onlyDList' => 0,
'dirList' => array('sampleDir/_pics','sampleDir/sample2','sampleDir'));
// do not change anything below
$prefs['rootD'] = './'; $la = '<a href="'; $le = '</a>';
if(!isset($_GET['p'])&&$prefs['onlyDList']!=1){$path=$prefs['rootD'];$r=1;}
elseif(!isset($_GET['p'])&&$prefs['onlyDList']==1){die($prefs['errMess']);}
elseif(isset($_GET['p'])){if(is_numeric($_GET['p'])){$path = $prefs['dirList'][$_GET['p']];}
elseif($prefs['onlyDList']!=1){if(ereg("../",$_GET['p']) || ereg("^/",$_GET['p'])|| ereg(":",$_GET['p'])){ die($prefs['errMess']);}
else{$path = $_GET['p'];}}else{die($prefs['errMess']);}}if($prefs['neverShowSkipD']==1){$path = ereg_replace($prefs['skipDirPrefix'],' ', $path);}
if($prefs['showURHere']==1){if(isset($r)){echo $prefs['dbStyle_1'].$prefs['rootDName'].$prefs['dbStyle_2']."\n";}
else{echo $prefs['dbStyle_1'].$la.$_SERVER['PHP_SELF'].'">'.$prefs['rootDName'].$le."\n";$urhere = explode('/',$path); $f = '';
while(list($key, $val) = each($urhere)) {if($key>0){$s = '/';} else{$s = '';} $f .= $s.$val;
echo $prefs['dbSep'].$la.$_SERVER['PHP_SELF'].'?p='.$f.'">'.$val.$le."\n";}
echo $prefs['dbStyle_2']."\n";}}
function read_dir($path,$num){global $prefs,$la,$le;$name = 'pathhandle'.$num;$dirlist = array();$filelist = array();$cnt = 0;
if ($$name = @opendir("$path")) {$l_1 = '';while (($file = readdir($$name)) !== false){$cur_file = $path.'/'.$file;
if(is_dir($cur_file) AND $file <> '.' AND $file <> '..' AND $file[0]<> $prefs['skipDirPrefix']){if($num>0 || $path <> $prefs['rootD']){$cur_file = $path.'/'.$file;}
else{$cur_file = $file;}array_push($dirlist,$cur_file);}elseif($prefs['showFiles'] == 1 AND is_file($cur_file)){$cur_file = ereg_replace('//','/', $cur_file);
if($file == basename($_SERVER['PHP_SELF']) && $prefs['hideScript']==1){continue;}if($prefs['showFAsLnk'] == 1){$l_1 = $la.$cur_file.'" target=main>';}
if($prefs['showFsize']==1){ if(!$fs = ' <span style="font-size:smaller;">('.(number_format((filesize($cur_file)/1024), 2, ',', '.')).') KB</span>'){$fs ='--';}}if($prefs['showAllFiles'] == 1){array_push($filelist, $l_1.basename($cur_file).$le.$fs);}
else{$i = 0;$pic = '';foreach($prefs['fType'] as $ftype){if(eregi("$ftype$", $file)){if($prefs['showPics'] == 1){$pic = '<img src="'.$prefs['picPath'].$prefs['pics'][$prefs['fPics'][$i]].'" align="absmiddle" hspace="3">';}array_push($filelist, $pic.$l_1.basename($cur_file).$le.$fs);continue 2;}
$i++;}}}}
foreach($dirlist as $dir){$ind = ''; $l_1='';if($prefs['showDAsLnk'] == 1){if(isset($num)){$l_1 = $la.$_SERVER['PHP_SELF'].'?p='.$dir.'">';}
else{ $l_1 = $la.$dir.'">';}}for($i=0;$i<$num;$i++){ $ind = $ind.$prefs['ind'];}
if($num==0){$s_1 = $prefs['firstLstyle_1'];$s_2 = $prefs['firstLstyle_2'];}
if($num>0){$s_1 = $prefs['subLstyle_1'];$s_2 = $prefs['subLstyle_2'];}
if($prefs['showPics'] == 1){$pic = '<img src="'.$prefs['picPath'].$prefs['pics'][1].'" align="absmiddle" hspace="3">';}echo $ind.$pic.$l_1.$s_1.basename($dir).$s_2.$le.'<br>'."\n";
if((is_numeric($prefs['showDirLevels']) && $num<$prefs['showDirLevels']) || $prefs['showDirLevels'] == 'all'){$num++;read_dir($dir,$num);$num--;}
if($num == 0){ echo $prefs['firstLSeparator'];}}
if(($prefs['sfOnlyCurDir'] == 1 && $num == 0) || $prefs['sfOnlyCurDir'] == 0){if($num == 0 && count($filelist)==0){echo $prefs['noFiles'];}
else{foreach($filelist as $f){$ind = '';for($i=0;$i<$num;$i++){ $ind = $ind.$prefs['ind'];}echo $ind.$f.'<br>'."\n";}}}}else{ echo $prefs['errMess'].'<br>';}}
read_dir($path,0);
?>
</td></tr>
Hi!
Durch das Skript blicke ich nicht durch.
Was dir klar sein muss:
Deine .htaccess-Datei ist nur für Webbenutzer nicht sichtbar!
PHP hat allerdings einen kompletten Zugriff auf das Dateisystem, kann ergo also auch .htaccess-Dateien sehen und auch einlesen.
Wenn dir der Autor dir nicht zurückschreibt, musst du wohl ein eigenes Skript erstellen...
cu
Marc Reichelt || http://www.marcreichelt.de/
Moin!
Hab mir da ein tolles Script heruntergeladen zum auflisten und verlinken der Files eines Ordners am Webserver.
Das funzt alles tadelos. Aber mein Problem ist das ich die Ordner mit .htaccess Datein schützen will. Das geht auch und die Files sind auch nicht anzeigbar. Aber die Dateinamen sind trotzdem sichtbar.
Das Problem ist recht simpel erklärt: Die .htaccess-Datei gilt ausschließlich für HTTP-Zugriffe auf den Apache-Webserver, aber nicht für die Dateisystem-Zugriffe, die dein PHP-Skript macht.
Und ich weis einfach nicht was ich machen soll das die Files nicht angezeigt werden wenn der Ordner wo si liegen .htacces geschützt ist.
Da wirst du wohl, wenn du wirklich .htaccess-Dateien als Signalisierung nehmen willst, diese Funktionalität in das Skript hineinprogrammieren müssen.
Oder du änderst die Zugriffsrechte auf das Verzeichnis, in dem die Dateien drinstehen - dann kann aber vermutlich _niemand_ mehr auf die Dateien zugreifen, auch nicht der Webserver. Und das macht in meinen Augen wenig Sinn - wozu dann die Dateien überhaupt hochladen?
Wenn du das Skript aber ohnehin nur irgendwoher kopiert hast, sehe ich wenig Hoffnung, dass du ohne Programmierkenntnisse irgendwas ausrichten kannst. Du _mußt_ das Skript umprogrammieren, damit es das macht, was du willst. Lerne es also - am besten jetzt. :)
- Sven Rautenberg
Hallo Günther,
liegt denn das Script, was Dir den Inhalt anzeigen soll, auch in einem Verzeichnis, was durch .htaccess geschützt ist? Denn wenn Du den Zugriff auf das Script kontrollieren willst, musst Du das auch sichern.
In der Anleitung im SelfAktuell (Link hab ich grad nicht zur Hand, hier auf Arbeit gibt es nur IE und der nervt.) gibt es da Hinweise dazu. Du suchst ggf. nach der <files> Direktive.
1. .htaccess: Das Verzeichnis sichern, das die Dateien enthält, die Du anzeigen willst, dass dort NIEMAND rein kann. Da muss nur das Script ran, nicht Dein Besucher
2. .htaccess: Schützt das Script, mit dem Du den Verzeichnisinhalt anzeigst. Das wahrscheinlich mit Nutzername und Passwort.
Achtung: Ich hab mir das Script nicht angeschaut, es kann also sein, dass Du den Inhalt der Dateien noch im Script anzeigen lassen musst.
Gruss, Thoralf