Ik ben begonnen aan een upload scriptje,
maar ik weet dat zo, veel sites gehackt worden,
ik zou graag een beveileging maken dat alleen img,png doorlaat,
dit word vaak omzeilt met bv tamper data dan uploaden de hackers een bestand dat eigenlijk bv .php is maar zeggen via de headers dat dit een .jpg is,
hoe kan ik me hier tegen beveiligen,
had al iets gevonden over mime types, maar weet niet hoe dit te doen,
misschien nog iemand een idee?
$ext = substr($_FILES['img']['name'], strpos($_FILES['img']['name'],'.'), strlen($_FILES['img']['name'])-1);
// Check if the filetype is allowed, if not DIE and inform the user.
if(!in_array($ext,$allowed_filetypes)){
die('The file you attempted to upload is not allowed.');
}
dat is wat ik op dit moment heb,
maar ik vrees dat dit niet genoeg is
# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
# Extentie van het bestand
$Extensie = strtolower(substr($_FILES['uploadVeld']['name'], -3));
# Kijken of file type is toegestaan
if(in_array($Extensie, $Filetype))
{
# Kijken of mime type is toegestaan
if(in_array($_FILES['uploadVeld']['type'], $Mimetype))
{
# Alles is ok
echo 'Alles klopt.';
}
else
{
# Mime type is niet toegestaan
echo 'Dit bestand is niet toegestaan.';
}
}
else
{
# File type is niet toegestaan
echo 'Dit bestand is niet toegestaan.';
}
}
Heb je geprobeerd?, ik weet zeker dat die goed werkt.
Daarbij heb ik hem ook nog verteld als je op getimagesize controleerd dan moet het wel een image zijn.
Ben benieuwd hoe jij je files controleerd op type.
De extensie check van Mr.Ark lijkt me een goed idee. Als hackers een zogenaamde image uploaden, kunnen ze hier niks mee, aangezien de file nog steeds een extensie als .jpg, .png of wat dan ook heeft. Die kan dus nooit geparsed worden als een php file.