Upload bestand blokeren
dit is mijn script:
ik wil niet dat php bestanden en andere bestands formaten waarmee mijn website kan worden aangetast op mijn website staan.
link www.game-base.x10.mx/Upload
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
$urllink = "../bestgebruik/" . $_FILES["file"]["name"];
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Link: " . "www.game-base.x10.mx/bestgebruik/" . $_FILES["file"]["name"] . "<br />";
echo "Link: <a href=$urllink>direct</a> <br />";
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("../bestgebruik/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"../bestgebruik/" . $_FILES["file"]["name"]);
echo "Stored in: " . "../bestgebruik/" . $_FILES["file"]["name"];
}
}
?>
$urllink = "../bestgebruik/" . $_FILES["file"]["name"];
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Link: " . "www.game-base.x10.mx/bestgebruik/" . $_FILES["file"]["name"] . "<br />";
echo "Link: <a href=$urllink>direct</a> <br />";
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("../bestgebruik/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"../bestgebruik/" . $_FILES["file"]["name"]);
echo "Stored in: " . "../bestgebruik/" . $_FILES["file"]["name"];
}
}
?>
Gewijzigd op 06/05/2011 21:46:45 door - Ariën -
hoe bedoel je?
Trouwens, ik hoop dat je beseft dat je niet slim bezig bent door een voorbeeld te geven naar een uploadscript, waarvan je al weet dat die niet beveiligd is.
Gewijzigd op 06/05/2011 21:52:15 door - Ariën -
hoe kan ik het goed beveiligen dan?
Gewijzigd op 06/05/2011 22:03:01 door - Ariën -
moet ik dan dit doen if (($_FILES["file"]["type"] == "php")) else en da de rest?
Nee? Doe dat eerst...
Mijn advies: Maak een white-list met toegestane extenties die alleen geupload mogen worden.
Gewijzigd op 06/05/2011 22:12:02 door - Ariën -
Toevoeging op 06/05/2011 22:14:50:
welke bestanden moet trouwens niet upload baar zijn?
Te veel, maak gewoon een white-list zoals ik zei. Veel beter onderhoudbaar.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?
$urllink = "../bestgebruik/" . $_FILES["file"]["name"];
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Link: " . "www.game-base.x10.mx/bestgebruik/" . $_FILES["file"]["name"] . "<br />";
echo "Link: <a href=$urllink>direct</a> <br />";
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("../bestgebruik/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"../bestgebruik/" . $_FILES["file"]["name"]);
echo "Stored in: " . "../bestgebruik/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
$urllink = "../bestgebruik/" . $_FILES["file"]["name"];
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Link: " . "www.game-base.x10.mx/bestgebruik/" . $_FILES["file"]["name"] . "<br />";
echo "Link: <a href=$urllink>direct</a> <br />";
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("../bestgebruik/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"../bestgebruik/" . $_FILES["file"]["name"]);
echo "Stored in: " . "../bestgebruik/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
Gewijzigd op 06/05/2011 22:31:29 door huppelpup php
Controleer ook eens op extenties.
- Aar - op 06/05/2011 22:35:05:
Controleer ook eens op extenties.
welke?
die toegestaan zijn, jpg, jpeg, png, gif
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
$urllink = "../bestgebruik/" . $_FILES["file"]["name"];
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
?>
$urllink = "../bestgebruik/" . $_FILES["file"]["name"];
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
?>
maar als vb is dit toch genoeg andere bestand-soorten voeg ik zelf wel toe. Maar is het nu niet mogelijk om mijn site aantetasten?
Controleren op alleen mime-types is niet genoeg.
wat dan nog meer geef een voorbeeld?
zoals exa's mp3's en mp4's en andere bestanden
Gewijzigd op 08/05/2011 16:51:52 door huppelpup php
whitlelist maken met extenties en mimetypes die mogen.
- Aar - op 08/05/2011 17:28:35:
whitlelist maken met extenties en mimetypes die mogen.
Maar ik wil dat alle bestands soorten mogelijk zijn behalve de bestandsoorten die mijn website kunnen aan tasten.
Doe wat Aar zegt.