Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 10873|Atbildi: 0

[Tīmeklis] Kontrolējiet piekļuvi failiem, izmantojot Nginx X-Sendfile mehānismu (php versija)

[Kopēt saiti]
Publicēts 07.11.2018 10:05:15 | | |
BBS vai vietnēm bieži vien ir tikai jums ir atļauja skatīt šo lapu vai lejupielādēt šo resursu, pirms dažām dienām es apmeklēju nginx serveri, kā īstenot šo failu kontroli, izmantojot x-sendfile.

1. Kas ir X-Sendfile?

X-Sendfile ir mehānisms, kas pārsūta failu lejupielādes pieprasījumus no aizmugures lietojumprogrammas uz priekšgala tīmekļa serveri apstrādei, kas var ievērojami uzlabot servera efektivitāti, novēršot aizmugures programmas spiedienu lasīt un apstrādāt failu, lai apstrādātu sūtīšanu, it īpaši, ja tiek strādāts ar lielu failu lejupielādi.

X-Sendfile tiek ieviests, izmantojot īpašu HTTP galveni: norādot faila adresi X-Sendfile galvenē, lai reklamētu priekšgala tīmekļa serveri. Kad tīmekļa serveris atklāj šo aizmugursistēmas nosūtīto galveni, tas ignorē citu aizmugursistēmas izvadi un izmanto savus komponentus (ieskaitot optimizācijas, piemēram, kešatmiņas galvenes un pārtraukuma punktu atkārtotus savienojumus), lai nosūtītu failu lietotājam.

Tomēr pirms X-Send faila lietošanas ir svarīgi saprast, ka šī nav standarta funkcija un lielākā daļa tīmekļa serveru to atspējo pēc noklusējuma. Dažādiem tīmekļa serveriem ir dažādas implementācijas, tostarp dažādi X-Sendfile galvenes formāti. Ja tas ir nepareizi konfigurēts, lietotāji var lejupielādēt 0 baitu failu.

Izmantojot X-Sendfile, būs iespējams lejupielādēt failus direktorijās, kas nav tīmekļa direktoriji (piemēram, /root/), pat ja fails ir atspējots saskaņā ar .htaccess aizsardzību.

Dažādi tīmekļa serveri ievieš dažādas HTTP galvenes

SENDFILE galvene
Izmantotais WEB serveris
X-Sūtīšanas failsApache, Lighttpd v1.5, Cherokee
X-LIGHTTPD-sūtīšanas failsLighttpd v1.4
X-Accel-novirzīšanaNginx, Čerokī

X-SendFile izmantošanas trūkums ir tas, ka jūs zaudējat kontroli pār failu pārsūtīšanas mehānismu. Piemēram, ja pēc faila lejupielādes vēlaties veikt noteiktas darbības, piemēram, ļaut lietotājam lejupielādēt failu tikai vienu reizi, šis X-Send fails to nevarēs izdarīt, jo fonā esošais php skripts nezina, vai lejupielāde ir veiksmīga.

2. Kā lietot NGINX?

Nginx atbalsta šo funkciju pēc noklusējuma un neprasa papildu moduļu ielādi. Tas ir tikai tas, ka ieviešana ir nedaudz atšķirīga, un HTTP galvene, kas jānosūta, ir X-Accel-Redirect. Turklāt konfigurācijas failā ir jāveic šādi iestatījumi

iekšējais nozīmē, ka šim ceļam var piekļūt tikai Nginx, un pārlūkprogramma tam nevar piekļūt tieši, lai novērstu nesankcionētas lejupielādes.

3. Kā lietot PHP programmas?


Ja pievienojat galveni X-Accel-Redirect, lietotājs lejupielādēs failu ceļā /game. Mūsu failu atļauju kontrole ir ieviesta.

Oficiālās dokumentācijas ievads:Hipersaites pieteikšanās ir redzama.




Iepriekšējo:Mīlestība, laulība un ģimene, mēneša pirmā puse + 18. jūnijs
Nākamo:CF ir pirmā perspektīva visā tīklā, lai vienu mēnesi pašmērķētu un stabilizētos
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com