PHP - move_uploaded_file mennyire fontos
Üdv.
Van egy olyan kínom a php-val, hogy a fájlnevek helyett szeretnék File objecteket használni, és a move_uploaded_file nagyon bekever ebbe. A kérdésem az, hogy van e bármilyen veszélye annak, hogyha sima move-al mozgatom a feltöltött fájlt?
(A $_FILES-ban előzőleg ellenőrzöm, hogy nincs e feltöltési hiba...)
■ Van egy olyan kínom a php-val, hogy a fájlnevek helyett szeretnék File objecteket használni, és a move_uploaded_file nagyon bekever ebbe. A kérdésem az, hogy van e bármilyen veszélye annak, hogyha sima move-al mozgatom a feltöltött fájlt?
(A $_FILES-ban előzőleg ellenőrzöm, hogy nincs e feltöltési hiba...)
Egyelőre ilyen a kód, ami
Sima move?
A move_uploaded_file és a rename más jogosultsággal dolgozik, tehát megfelelő php beállításokkal a rename nem olvashatja azt a fájlt, amit a move_uploaded_file igen!
Ja a rename-re gondoltam
Köszi, akkor majd odafigyelek a beállításokra...
Nem
Ergó van benne egy biztonsági mechanizmus a piszkálás elkerülése érdekében. Azt javaslom, hogy ne próbáld meg mással helyettesíteni.
Elméletileg az
Returns TRUE if the file named by filename was uploaded via HTTP POST. This is useful to help ensure that a malicious user hasn't tried to trick the script into working on files upon which it should not be working--for instance, /etc/passwd.
This sort of check is especially important if there is any chance that anything done with uploaded files could reveal their contents to the user, or even to other users on the same system.
Na most szerintem ennek az egésznek semmi értelme nincs, mármint a feltöltött fájlok sosem kerülnek olyan helyre, ahol veszélyt jelenthetnének. Van egy mappa, ahova csak feltöltött fájlok mennek, onnan több script helyezi át őket a public (wwwroot) mappa különböző részeire, a php fájlokkal meg nem keveredhetnek, plusz kiterjesztésre meg mime type-ra ellenőrzöm őket.
Tudtok olyan támadási módról, amit ez a move_uploaded_file megakadályoz?
Nem
A másik hiba, amit elkövetsz pedig az, hogy így viszont a szoftvered csak akkor lesz biztonságos és jól üzemeltethető, ha csak olyan szerveren fut, aminek te mondod meg a konfigurációs paramétereit.
Aha, értem.
Bettem egy check-et, hogyha is_uploaded_file van, akkor move_uploaded_file-al helyezze át, ellenkező esetben meg rename-el... Felesleges injektálni, hogy feltöltöttnek kell e lennie, mert azt meg külön ellenőrzöm, amikor kiolvasom a $_FILES-ból, és létrehozom az objektumokat. Kösz a segítséget.
Értelme?
Mint az előbb mondták a