Puncte:1

Permiteți listarea fișierelor atunci când vizualizați un director, dar protejate (prin autentificare HTTP) atunci când sunt accesate direct

drapel br

Am creat un director protejat cu parolă folosind .htaccess și .htpasswd, dar fișierele nu apar când merg la adresa URL a directorului.

Am asta în mine .htaccess:

#Protejați mai multe fișiere
<Fișierele se potrivesc cu „^(csv$”>
AuthName „Prompt de dialog”                                                                                                                                                                                       
AuthType Basic
AuthUserFile /xxxxx/test                                                                                                                                              
#AuthUserFile „.htpasswd”                                                                                                                                                                                      
Necesită utilizator valid                                                                                                                                                                                             
</FilesMatch>       

Lista de director - nu afișează fișierele CSV

ACTUALIZAȚI: Protejez fișierele CSV din acel director. Ele dispar din lista de director atunci când directiva de autentificare este setată. Apar când îl scot. Vreau să pot vedea cel puțin fișierele din lista de director, dar atunci când accesez aceste fișiere, ar oferi un prompt de autentificare.

djdomi avatar
drapel za
Răspunde asta la întrebarea ta? [cum se configurează apache pentru a vedea fișierele ascunse (\`.\`)?](https://serverfault.com/questions/245922/how-to-configure-apache-to-view-hidden-files)
drapel kz
„când ajung la _the_ URL” - Ce adresă URL? Aveți directivele mod_auth... într-un `` container, dar din captura de ecran ați părea că solicitați un director? Vă rugăm să explicați exact ce încercați să protejați, ce cerere(e) faceți și care este rezultatul așteptat?
Patoshi パトシ avatar
drapel br
Protejez fișierele CSV din acel director. Ele dispar când directiva de autentificare este setată. Apare când îl scot. Vreau să pot măcar să văd fișierele, dar atunci când accesez aceste fișiere, ar oferi un prompt de autentificare.
Puncte:1
drapel kz

Protejez fișierele CSV din acel director. Ele dispar când directiva de autentificare este setată. Apare când îl scot. Vreau să pot măcar să văd fișierele, dar atunci când accesez aceste fișiere, ar oferi un prompt de autentificare.

Când o listă de director este generată folosind mod_autoindex, este emisă o subcerere internă pentru fiecare fișier care apare în lista de director. Când utilizați a <FilesMatch "^(.*).csv$"> container, atunci este procesat și pentru aceste subcereri și, în consecință, este blocată și introducerea acestor fișiere în lista de director.

O alternativă la utilizarea <FilesMatch> directiva este de a folosi un <If> expresie și testare împotriva CEREREA variabila server în schimb. Aceasta este numai atunci de succes cand .csv fișierele sunt de fapt solicitate de utilizator și nu atunci când navighează în listarea directoarelor.

De exemplu:

# Listările de directoare (mod_autoindex) trebuie să fie activate
Opțiuni +Indecși

# Protejați fișierele CSV împotriva accesării, dar încă vizibile în lista de directoare
<Dacă „%{THE_REQUEST} =~ m#\.csv(\s|\?)#">
AuthName „Prompt de dialog”                                                                                                                                                                                       
AuthType Basic
AuthUserFile /xxxxx/test                                                                                                                                              
Necesită utilizator valid                                                                                                                                                                                             
</Dacă>

CEREREA conține prima linie a cererii HTTP. de exemplu. GET /foo/test.csv HTTP/1.1 (în cazul unei cereri GET pentru /foo/test.csv) - și nu se modifică pe parcursul cererii. Deci, atunci când solicitați directorul în sine, de ex. /foo/ atunci blocul inclus nu este procesat și lista acestor fișiere nu este blocată.

Complicația suplimentară este că CEREREA conține întreaga adresă URL așa cum a fost solicitată, care ar putea include un șir de interogare. Deci, cecul pentru (\s|\?) (adică spații albe sau un literal ?) este pentru a evita ocolirea verificării parolei prin simpla includere a unui șir de interogare. de exemplu. /foo/test.csv?orice.

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.