Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 10873|Απάντηση: 0

[Ιστός] Ελέγξτε την πρόσβαση στα αρχεία χρησιμοποιώντας τον μηχανισμό X-Sendfile του Nginx (έκδοση php)

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 7/11/2018 10:05:15 π.μ. | | |
Το BBS ή οι ιστότοποι έχουν συχνά μόνο εσείς έχετε άδεια να δείτε αυτήν τη σελίδα ή να κάνετε λήψη αυτού του πόρου, πριν από λίγες ημέρες επισκέφτηκα τον διακομιστή nginx πώς να εφαρμόσετε αυτόν τον έλεγχο αρχείων, χρησιμοποιώντας το x-sendfile.

1. Τι είναι το X-Sendfile;

Το X-Sendfile είναι ένας μηχανισμός που αναμεταδίδει αιτήματα λήψης αρχείων από την εφαρμογή υποστήριξης στον διακομιστή ιστού front-end για επεξεργασία, ο οποίος μπορεί να βελτιώσει σημαντικά την αποτελεσματικότητα του διακομιστή αφαιρώντας την πίεση του προγράμματος back-end για ανάγνωση και επεξεργασία του αρχείου για την επεξεργασία της αποστολής, ειδικά όταν πρόκειται για λήψεις μεγάλων αρχείων.

Το X-Sendfile υλοποιείται μέσω μιας συγκεκριμένης κεφαλίδας HTTP: καθορίζοντας τη διεύθυνση ενός αρχείου στην κεφαλίδα X-Sendfile για να διαφημιστεί στον διακομιστή ιστού front-end. Όταν ο διακομιστής ιστού εντοπίσει αυτήν την κεφαλίδα που αποστέλλεται από το backend, αγνοεί άλλα αποτελέσματα από το backend και χρησιμοποιεί τα δικά του στοιχεία (συμπεριλαμβανομένων βελτιστοποιήσεων όπως κεφαλίδες προσωρινής μνήμης και επανασυνδέσεις σημείων διακοπής) για να στείλει το αρχείο στον χρήστη.

Ωστόσο, πριν χρησιμοποιήσετε το X-Sendfile, είναι σημαντικό να κατανοήσετε ότι αυτό δεν είναι μια τυπική δυνατότητα και είναι απενεργοποιημένο από τους περισσότερους διακομιστές ιστού από προεπιλογή. Διαφορετικοί διακομιστές ιστού έχουν διαφορετικές υλοποιήσεις, συμπεριλαμβανομένων διαφορετικών μορφών κεφαλίδας X-Sendfile. Εάν δεν έχουν ρυθμιστεί σωστά, οι χρήστες μπορούν να κατεβάσουν ένα αρχείο 0 byte.

Η χρήση του X-Sendfile θα επιτρέψει τη λήψη αρχείων σε καταλόγους εκτός ιστού (π.χ. /root/) ακόμα κι αν το αρχείο είναι απενεργοποιημένο υπό προστασία .htaccess.

Διαφορετικοί διακομιστές ιστού εφαρμόζουν διαφορετικές κεφαλίδες HTTP

Κεφαλίδα SENDFILE
Χρησιμοποιούμενος διακομιστής WEB
X-Αποστολή αρχείουΑπάτσι, Lighttpd v1.5, Τσερόκι
X-LIGHTTPD-αποστολή αρχείουLighttpd v1.4
X-Accel-ΑνακατεύθυνσηNginx, Τσερόκι

Το μειονέκτημα της χρήσης του X-SendFile είναι ότι χάνετε τον έλεγχο του μηχανισμού μεταφοράς αρχείων. Για παράδειγμα, εάν θέλετε να εκτελέσετε ορισμένες ενέργειες μετά τη λήψη ενός αρχείου, όπως να επιτρέψετε στον χρήστη να κατεβάσει το αρχείο μόνο μία φορά, αυτό το X-Sendfile δεν θα μπορεί να το κάνει επειδή το σενάριο php στο παρασκήνιο δεν γνωρίζει εάν η λήψη είναι επιτυχής.

2. Πώς να χρησιμοποιήσετε το NGINX;

Το Nginx υποστηρίζει αυτήν τη δυνατότητα από προεπιλογή και δεν απαιτεί τη φόρτωση πρόσθετων μονάδων. Απλώς η υλοποίηση είναι λίγο διαφορετική και η κεφαλίδα HTTP που πρέπει να σταλεί είναι X-Accel-Redirect. Επιπλέον, πρέπει να κάνετε τις ακόλουθες ρυθμίσεις στο αρχείο διαμόρφωσης

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

3. Πώς να χρησιμοποιήσετε προγράμματα PHP;


Εάν προσθέσετε την κεφαλίδα X-Accel-Redirect, ο χρήστης θα κατεβάσει το αρχείο κάτω από τη διαδρομή /game. Εφαρμόζεται ο έλεγχος αδειών αρχείων.

Επίσημη εισαγωγή τεκμηρίωσης:Η σύνδεση με υπερσύνδεσμο είναι ορατή.




Προηγούμενος:Έρωτας, γάμος και οικογένεια, πρώτο μισό του μήνα + 18 Ιουνίου
Επόμενος:Η ΚΙ είναι η πρώτη προοπτική σε ολόκληρο το δίκτυο που αυτοστοχοποιείται και σταθεροποιείται για ένα μήνα
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com