Puncte:1

Excludeți google doc embed iframe din regula de rescriere nginx?

drapel ua

Sper că cineva mă poate ajuta aici, deoarece am cunoștințe foarte limitate despre chestii legate de server.

Am un site WordPress unde vreau să limitez accesul la directorul /wp-content/uploads/ doar la utilizatorii conectați. Pentru aceasta, am folosit soluția specificată în următorul link pe un server nginx:

https://wordpress.stackexchange.com/questions/37144/how-to-protect-uploads-if-user-is-not-logged-in

Și această soluție funcționează bine. Cu toate acestea, există o problemă.

Am câteva pdf-uri încorporate prin google doc embed pe anumite pagini. Încorporarea documentelor Google folosește pentru a încărca PDF-urile după cum urmează:

<iframe src="//docs.google.com/viewer?url=https://link-to-file.pdf&amp;hl=en_US&amp;embedded=true" class="" style="width:100%; height:500px; border: none;" scrolling="no"></iframe>

Regula mea nginx este următoarea:

locație ~* /(?:încărcări)/* {
   rescrie /wp-content/uploads/(.*)$ /dl-file.php?file=$1;
}

Cum pot exclude mai sus iframe sau //docs.google.com URL din această regulă?

Orice ajutor ar fi foarte apreciat.

Mulțumiri

Bakar

drapel kz
Excluzând vizualizatorul de documente Google, faceți, în esență, PDF-urile disponibile public...deci de ce nu faceți PDF-urile disponibile public? Alternativ, sunt consecvente adresele IP cu care Google solicită aceste documente?
Puncte:0
drapel pl
JFK

Puteți folosi referreri (http://nginx.org/en/docs/http/ngx_http_referer_module.html#valid_referers)

valid_referers nici unul blocat server_names docs.google.com;

Apoi, puteți utiliza variabila $invalid_referer în blocul dvs. de locație.

dacă ($invalid_referer) {
    rescrie /wp-content/uploads/(.*)$ /dl-file.php?file=$1;
}
bakar avatar
drapel ua
Îmi pare rău, dar acest lucru nu funcționează. Se pare că nici măcar nu validează fosta regulă nginx.
drapel us
Este posibil ca vizualizatorul `doc.google.com` să nu trimită antetul de referință HTTP corect atunci când solicită afișarea fișierului. Dacă acesta este cazul, trebuie să găsiți un alt vizualizator PDF.
JFK avatar
drapel pl
JFK
Adăugați $http_refferer în jurnalul dvs. (https://docs.nginx.com/nginx/admin-guide/monitoring/logging/) și verificați ce vă trimite Google, dacă este ceva.
bakar avatar
drapel ua
@TeroKilkanen, mulțumesc pentru comentariu. Ai dreptate, nu există niciun referrer în jurnalul de acces. În cele din urmă, am decis să folosesc un alt plugin de vizualizare PDF.
bakar avatar
drapel ua
@JFK, mulțumesc pentru comentariu. Se pare că Google nu trimite niciun referrer și aceasta este cauza că regula de mai sus nu a funcționat. Multumesc pentru ajutor btw.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.