Acces la sistemul de fișiere folosind SQL

Recent am descoperit o modalitate ingenioasă de a accesa sistemul de fișiere și de a recupera informații valoroase, cum ar fi existența fișierelor și folderelor sau conținutul acestora. Aceasta poate fi foarte utilă ca alternativă la funcția PHP ` file_exists` , deoarece informațiile despre existența fișierului(elor) pot fi utilizate în interogare pentru funcții ulterioare de sortare și agregare.


Cu condiția ca utilizatorul bazei de date asociate să aibă privilegii FILE , comanda poate fi utilizată

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

În timpul interogării nu numai că verificați dacă există un fișier, ci și citiți conținutul acestuia.

Pe sistemele Windows trebuie remarcat faptul că backslashes trebuie marcate corespunzător în calea către fișier (exemplu: C: \\ Windows \\ System32 \\ drivers \\ etc \\ hosts). Aspectul de securitate nu ar trebui, de asemenea, să nu fie complet ignorat, deoarece, atunci când privilegiul FILE este acordat, accesul la baza de date înseamnă automat acces la restul sistemului de fișiere.

Pentru a vă asigura că nu numai valorile NULL sunt returnate, trebuie să vă asigurați că utilizatorul care rulează MySQL are drepturi de citire.

Pentru a accesa și fișiere mari, proprietatea globală „max_allowed_packet”, care este setată la 1 MB, trebuie mărită.

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

Acum puteți (după repornirea serverului) să accesați fișiere cu dimensiuni de până la 512 MB.

Înapoi