Πρόσβαση στο σύστημα αρχείων χρησιμοποιώντας SQL

Μόλις βρήκα μια ωραία επιλογή στο MySQL για να μπω στο σύστημα αρχείων και να λάβω πολύτιμες πληροφορίες, για παράδειγμα σχετικά με την ύπαρξη αρχείων και φακέλων ή του περιεχομένου τους. Αυτό μπορεί να είναι πολύ χρήσιμο ως εναλλακτική λύση στη συνάρτηση php file_exists , καθώς οι πληροφορίες σχετικά με την ύπαρξη των αρχείων μπορούν να χρησιμοποιηθούν στο ερώτημα για περαιτέρω λειτουργίες ταξινόμησης και συγκέντρωσης.


Εάν ο συσχετισμένος χρήστης της βάσης δεδομένων έχει το δικαίωμα FILE , μπορείτε να χρησιμοποιήσετε την εντολή

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

Κατά τη διάρκεια του ερωτήματος όχι μόνο ελέγξτε αν υπάρχει ένα αρχείο, αλλά και διαβάστε το περιεχόμενό του.

Σε συστήματα Windows θα πρέπει να σημειωθεί ότι η ανάστροφη κάθετο στη διαδρομή προς το αρχείο πρέπει να επισημανθεί ανάλογα (παράδειγμα: C: \\ Windows \\ System32 \\ drivers \\ etc \\ hosts). Η πτυχή ασφάλειας δεν πρέπει επίσης να αγνοηθεί πλήρως, καθώς όταν χορηγείται το προνόμιο FILE, η πρόσβαση στη βάση δεδομένων σημαίνει αυτόματα πρόσβαση στο υπόλοιπο σύστημα αρχείων.

Για να διασφαλιστεί ότι δεν επιστρέφονται μόνο οι τιμές NULL, πρέπει να διασφαλιστεί ότι ο χρήστης που εκτελεί MySQL έχει δικαιώματα ανάγνωσης.

Για να αποκτήσετε πρόσβαση σε μεγάλα αρχεία, η καθολική ιδιότητα "max_allowed_packet", η οποία έχει οριστεί σε 1 MB, πρέπει να αυξηθεί.

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

Τώρα μπορείτε (μετά την επανεκκίνηση του διακομιστή) να αποκτήσετε πρόσβαση σε αρχεία μεγέθους έως 512 MB.

Πίσω