Hozzáférés a fájlrendszerhez SQL használatával

Nemrég rábukkantam egy ügyes módszerre, amellyel elérhetem a fájlrendszert, és értékes információkat kinyerhetek, például fájlok és mappák létezéséről vagy azok tartalmáról. Ez nagyon hasznos lehet a ` file_exists` PHP függvény alternatívájaként, mivel a fájl(ok) létezésére vonatkozó információk felhasználhatók a lekérdezésben további rendezési és összesítési függvényekhez.


Feltéve, hogy a társított adatbázis-felhasználó rendelkezik FÁJL jogosultságokkal , a parancs használható.

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

A lekérdezés során nemcsak ellenőrizze, hogy létezik-e egy fájl, hanem olvassa el annak tartalmát is.

Windows rendszereken meg kell jegyezni, hogy a visszavonásokat ennek megfelelően kell megjelölni a fájl elérési útjában (például: C: \\ Windows \\ System32 \\ drivers \\ etc \\ hosts). A biztonsági szempontot sem szabad teljesen figyelmen kívül hagyni, mivel a FÁJL jogosultság megadásakor az adatbázishoz való hozzáférés automatikusan a fájlrendszer többi részéhez való hozzáférést jelenti.

Annak biztosítása érdekében, hogy ne csak a NULL értékeket adjanak vissza, biztosítani kell, hogy a MySQL-t futtató felhasználó rendelkezzen olvasási jogokkal.

A nagy fájlok eléréséhez meg kell növelni a "max_allowed_packet" globális tulajdonságot, amelynek értéke 1 MB.

mysql -u... -p...
set global max_allowed_packet = 1024 * 1024 * 512;
exit;

Most (a szerver újraindítása után) elérheti az 512 MB méretű fájlokat.

Vissza