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

Właśnie natknąłem się na fajną opcję w MySQL, aby wejść do systemu plików i uzyskać cenne informacje, na przykład o istnieniu plików i folderów lub ich zawartości. Może to być bardzo pomocne jako alternatywa dla funkcji php file_exists , ponieważ informacja o istnieniu pliku (ów) może być nadal używana w zapytaniu o dalsze funkcje sortowania i agregacji.


Jeśli powiązany użytkownik bazy danych ma uprawnienie 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