veilig?
superlol - 18/07/2007 22:21 (laatste wijziging 18/07/2007 22:23)
PHP interesse
Hey
Ik wil dat mensen de url van mijn downloads niet kunnen achterhalen dus gebruik ik dit script :
<?php
if(file_exists("downloads8992/".base64_decode($_GET['id']))) {
$file="downloads8992/".base64_decode($_GET['id']);
$bn=explode("/", base64_decode($_GET['id']));
$bneind=end($bn);
header('Content-type: audio/mp3');
header('Content-Disposition: attachment; filename="'.$bneind.'"');
header('Content-Length: ' . filesize($file));
readfile($file);
} else {
header("Location: http://www.google.nl");
}
?>
<?php
header ( 'Content-type: audio/mp3' ) ; header ( 'Content-Disposition: attachment; filename="' . $bneind . '"' ) ; } else {
header ( "Location: http://www.google.nl" ) ; }
?>
Nu is mijn vraag, is dit gevaarlijk of dergelijke?
Kunnen bezoekers hiermee dingen doen waarvan ik liever niet heb dat ze het doen?
2.En nog een vraagje, als ik controleer of een artiest in de database voorkomt : script.php?artiest=Blaat , is het dan veilig om het zo te doen :
mysql_query("SELECT * FROM artiesten WHERE naam='".mysql_real_escape_string($_GET['artiest'])."'");
Of moet ik ook nog HTMLENTITIES ofzo erdoorheen gooien?
Bvd!
16 antwoorden
Gesponsorde links
Webtijn - 18/07/2007 22:58 (laatste wijziging 18/07/2007 23:00)
PHP interesse
Het lijkt me dat 't bovenste niet veilig is, maar ik durf het niet met 100% zekerheid te zeggen..
Stel dat $_GET[ 'id' ] de waarde '../index.php' bevat en dat bestand bestaat ?
superlol - 18/07/2007 23:37
PHP interesse
Hoe kan ik dat dan beveiligen?
Sitebase - 19/07/2007 02:08
PHP expert
Citaat:
Stel dat $_GET[ 'id' ] de waarde '../index.php' bevat en dat bestand bestaat ?
Dit gaat niets geven. Dit is zeker geen veiligheids probleem.
marten - 19/07/2007 07:42
Beheerder
Haal je bestandsnamen door een md5, haal je gevraagde url door md5 zet .htaccess bestanden in de mappen waar ze niet mogen komen.
Sitebase - 19/07/2007 12:00
PHP expert
WMP schreef:
[..quote..]
Dit gaat niets geven. Dit is zeker geen veiligheids probleem.
Ow idd, is wel niet echt veilig. Het was nogal laat gisteren.
superlol - 19/07/2007 16:25
PHP interesse
marten,
als ik de bestandnamen door de md5 haal, dan kan ik ze niet terugcoderen, dus kan ik de bestanden ook niet openen?
En met een .htaccess gaat ook niet werken volgens mij, want de bestanden staan buiten de root, dus daar kunnen de bezoekers zowieso niet bij zonder een PHP script..
Kan iemand nog verder helpen??
Ultimatum - 19/07/2007 16:52
PHP expert
Tuurlijk kan je de bestandsnamen wel in md5 doen, en wie heeft het over terugcoderen?
Je zet de bestandsnamen gewoon neer en als je de md5 url gaat vergelijken met de bestandsnamen dan haal je de bestandsnamen door md5, niet eerder.
Webtijn - 20/07/2007 22:14 (laatste wijziging 20/07/2007 22:15)
PHP interesse
WMP schreef:
[..quote..]
Dit gaat niets geven. Dit is zeker geen veiligheids probleem.
Jazeker wel, daar ben ik van overtuigd.. Anders had ik het ook niet gepost ;)
superlol - 21/07/2007 00:02 (laatste wijziging 21/07/2007 20:56)
PHP interesse
Ja, ik heb het ook uitgeprobeerd, het is idd wel een veiligheidsprobleem,
maar weet iemand ook hoe ik het kan oplossen?
Sitebase - 22/07/2007 02:44
PHP expert
Webtijn schreef:
[..quote..]
Jazeker wel, daar ben ik van overtuigd.. Anders had ik het ook niet gepost ;)
Eerst even alle reacties lezen Webtijn. Ik was ernaast, zoals je in mijn tweede reactie kan lezen.
JBke - 22/07/2007 13:34
PHP gevorderde
werk met mod_rewrite in .htaccess voor andere url's van je bestanden en idd met md5 is ook een mooie oplossing.
superlol - 22/07/2007 23:35
PHP interesse
Kunnen jullie dan misschien een voorbeeld geven van die MD5?
wes - 23/07/2007 08:31 (laatste wijziging 23/07/2007 08:33)
PHP interesse
als je wil dat gebruikers alleen bij (bijv.) de pagina download.php die bestanden kunnen downloaden, en niet direct naar de url gaan. Dan kun je dit doen:
in de map downloads8992 maak je een .htaccess met daarin:
order allow,deny
deny from all
order allow, deny
deny from all
dus als de gebruikers dan toch nog achter de url komen, dan kunnen ze er weer moeilijker bij
edit:
dan moet download.php dan natuurlijk niet in de map downloads8992 staan, want in die map moeten alle beveiligde downloads staan.
superlol - 23/07/2007 15:28
PHP interesse
Bedankt, maar wat doet die order allow, deny, deny from all eigelijk?
En kan iemand nog een voorbeeld geven van MD5 aub.?
Gesponsorde links
Dit onderwerp is gesloten .