Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum. Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden. Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!

We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.

Team Webprofis

hoe verbergen pad naar download file

in PHP, MySQL Posts: 879
is weer ivm het filemanagement systeempje:
$dir = "users/$UserName";
$files = scandir($dir);
sort($files);
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
?>
<table>
<tr>
<td><?php echo $file."<br />";?></td>
<td><?php if(isset($_GET['delete'])) { unlink("users/$UserName/".$_GET['delete']); } echo "<a href='?delete=".$file."'>Delete Now!</a>"?></td>
<td><?php echo "<a href='users/$UserName/$file' target='_blank'>Download</a>";?></td>
</tr>
</table>
<?php

}
}
De Download link: iedereen kan zien waar de bestanden fysiek staan op de webserver als je met de muis over de download link hovert. Hoe kan ik dit nu het beste (vanwege veiligheidsoverweging) beschermen en uit het zicht halen voor de gebruiker?

Reacties

  • bewerkt vr 8 apr 2016
    PMPosts: 415
    Met ajax je delete.php aanspreken en met een onclick je delete.php aanspreken, dit is echter ook nog te vinden voor iemand die het wil weten.

    Wat je ook kunt doen (dit bedenk ik maar terwijl ik typ) is hash gebruiken.
    Dus ongeveer zo iets:
    <?php
    echo "<a href='?delete=".md5($file)."'>Delete Now!</a>
    ?>
    En in je $_GET zo iets:
    <?php
    if(isset($_GET['delete'])) { unlink("users/$UserName/".md5($_GET['delete'])); }
    ?>
    Ik gebruikte maar even een md5 voor het voorbeeld, maar er zijn betere varianten zoals bv sha, al denk ik dat het voor een paar files niet echt uitmaakt welke hash je gebruikt.

    nog edit, oh, het gaat over de download, nuja, zelfde idee ongeveer :P
    Je moet dan alleen wel met een forced download werken (wat ik sowieso verplicht vind als je een download aanbied), want anders kun je de hash niet terug krijgen naar het juiste pad.

    In je forced download zoek je dus naar iets in deze strekking where toDownloadedFile = $_GET['download']
    nuet
Login of Registreer om te reageren.