Dostęp do systemu plików za pomocą SQL

Niedawno natknąłem się na sprytny sposób dostępu do systemu plików i pobierania cennych informacji, takich jak istnienie plików i folderów lub ich zawartość. Może to być bardzo pomocne jako alternatywa dla funkcji PHP ` file_exists` , ponieważ informacje o istnieniu pliku(-ów) można wykorzystać w zapytaniu do dalszych funkcji sortowania i agregacji.


Jeśli powiązany użytkownik bazy danych ma uprawnienia PLIK , możesz użyć komendy

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

Podczas kwerendy nie tylko sprawdź, czy plik istnieje, ale także odczytaj jego zawartość.

W systemach Windows należy zauważyć, że ukośniki odwrotne muszą być odpowiednio zaznaczone w ścieżce do pliku (przykład: C: \\ Windows \\ System32 \\ drivers \\ etc \\ hosts). Nie należy również całkowicie lekceważyć aspektu bezpieczeństwa, ponieważ po nadaniu uprawnienia PLIK dostęp do bazy danych automatycznie oznacza dostęp do pozostałej części systemu plików.

Aby mieć pewność, że zwracane są nie tylko wartości NULL, należy się upewnić, że użytkownik korzystający z MySQL ma prawa do odczytu.

Aby również uzyskać dostęp do dużych plików, należy zwiększyć globalną właściwość „max_allowed_packet”, która jest ustawiona na 1 MB.

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

Możesz teraz (po ponownym uruchomieniu serwera) uzyskać dostęp do plików o rozmiarze do 512 MB.

Plecy