File feltöltés korlátozása milyen módon?
Van ez a script, és az a probléma hogy csak képet lehet vele feltölteni és nem tudom hogy hogyan lehetne pl exe fileokat feltölteni, mert nem engedte átírni a kiterjesztéseket.
Meg jó lenne egy hiba generálása ha pl 2mb-nál nagyobb a file amit fel akar tölteni a felhsználó.
<html>
<head>
<title>Feltöltés</title>
</head>
<body>
<?php
if ((($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg"))
&& ($_FILES["file"]["size"] < 10000000000000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Feltöltött fájl neve: " . $_FILES["file"]["name"] . "<br />";
echo "Kiterjesztése: " . $_FILES["file"]["type"] . "<br />";
echo "Mérete: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " Ez a fájl már fent van az oldalon, de azért köszi. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"tmp/" . $_FILES["file"]["name"]);
echo "Feltöltés sikeres, tárolva a következő helyen: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Nem megfelelő a kiterjesztés.";
}
?>
</body>
</html>
Előre szólok, mielőtt készen lennél, ez a fájltípus vizsgálat nem sokat ér!
A rendszer a mimetype-ot nézi, amit nagyon könnyű átverni!
Jobban járnál egy kiterjesztés vizsgálattal, vagy azzal, ha a feltöltéskor átneveznéd a fájlokat és egy saját scripttel tennéd elérhetővé.
Tehát például minden feltöltéskor a fájl nevét random generált hash-re cserélnéd és egy adatbázisban eltárolnád az eredeti nevét, vagy valamilyen azonosítót.
A felhasználóknak pedig CSAK az azonosítót/eredeti nevet mutatnád. A letöltő scriptben könnyedén el lehet fedni a fizikai nevet! -> Sokkal biztonságosabb, mert nagyon kicsi rá az esély, hogy valaki miután feltett egy fájlt megtalálja a fizikai helyét és futtassa.
(Illetve akár szerver beállítással el lehet érni, hogy az uploadsból közvetlen semmit ne lehessen megnyitni.)
Ezeket gondold át, szívesen segítek kicsit kipofozni, illetve ha küldesz kódot, megmondom hol lehetne javítani rajta.
(Nem egy feltöltő oldalon könnyedén ki lehet játszani a rendszert és fel lehet tenni php kódokat. Ha pedig ezen kívül még rossz a konfig a szerveren, vagy lusta volt a rendszergazda, akkor akár a teljes gép felett meg lehet szerezni az uralmat.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!