Soluție simplă pentru restricționarea accesului la (anumite) încărcări/descărcări

28 mai 2013, 00:50:54
Vizualizări: 18.3K
Voturi: 16

Situația inițială

Pentru un site pe care îl configurez, am căutat soluții pentru a securiza încărcările/descărcările și pentru a restricționa accesul la ele în funcție de rolurile/capacitățile utilizatorilor. Desigur, am citit câteva dintre întrebările anterioare legate de acest subiect (în general) de pe acest site, iar pentru referință, cele mai importante/interesante pe care le-am găsit sunt:

Note suplimentare

În general, nu este o idee rea să îmbunătățești securitatea instalației tale WordPress - de exemplu, protejând fișierul wp-config.php - există multe lucruri pe care le poți și ar trebui să le faci. Există o tonă de informații despre cum să faci asta. În contextul acestei întrebări, sunt mai preocupat de încărcările/descărcările mele.

Fișierele încărcate în WordPress nu sunt securizate, oricine poate naviga în folderul uploads, decât dacă îl previți cu un fișier .htaccess:

Options All -Indexes

Fișierul .htaccess trebuie plasat în interiorul folderului uploads. Dar asta nu le securizează cu adevărat, ci doar face mai greu găsirea fișierelor. În plus, poți preveni hotlinking-ul, restricționând esențial accesul pe baza referrer-ului - deși acesta este un caz puțin diferit, am vrut să menționez asta, nu voi elabora mai departe, poți găsi o mulțime de informații despre asta.

Desigur, există posibilitatea de a face postările private sau de a crea un tip de postare personalizată cu fișiere șablon adecvate pentru a face acel tip de postare privat, dar asta nu securizează fișierele. Același lucru se poate spune despre învelirea fișierelor în condiționale precum is_user_logged_in() sau is_admin().

Pe margine, există o mulțime de plugin-uri care promit să-ți securizeze fișierele și să le protejeze, dar multe dintre ele doar pretind că fac asta, unele dintre motive sunt menționate mai sus. Menționez asta pentru că sunt sigur că nu toată lumea știe acest lucru - așadar, fii conștient de asta.

Obiectiv

Intenția mea a fost să pot restricționa accesul la (anumite) încărcări și respectiv descărcări. Și să mă asigur că nimeni nedorit nu poate avea acces la ele, nici prin noroc și nici dacă acel cineva știa numele fișierului, fișierele ar trebui să fie cu adevărat private și securizate. În final, doar anumite persoane ar trebui să aibă acces fără excepții.

În plus, nu aveam nevoie să privatizez întregul site, într-adevăr asta ar fi fost contraproductiv - este folosit pentru prezentări publice. Mai mult, am vrut ca soluția să fie ușor de utilizat, din simplul motiv că unele dintre persoanele care lucrează cu acesta nu sunt exact experți în calculatoare, așa cum se întâmplă adesea.

Întrebare

Prin urmare, întrebarea este: există o modalitate (relativ) simplă de a restricționa accesul la (anumite) încărcări și descărcările respective? Și, așa cum am expus, asta înseamnă o modalitate de a le proteja și securiza cu adevărat?

4
Comentarii

Ar trebui să adaugi soluția ta ca răspuns în loc să o încorporezi în întrebare.

s_ha_dum s_ha_dum
28 mai 2013 02:00:39

Și te rog să folosești litere mari/mici corespunzător. Sună ca o conversație...

kaiser kaiser
29 mai 2013 00:25:10

Mulțumesc pentru critica constructivă, voi edita și restructura în curând.

Nicolai Grossherr Nicolai Grossherr
29 mai 2013 00:36:24

Sunt curios, ce părere ai despre acest plugin? https://preventdirectaccess.com/faq/

Sam Sabin Sam Sabin
28 ian. 2025 03:54:29
Toate răspunsurile la întrebare 1
0

Răspund la propria întrebare, deoarece am găsit o soluție, dar sunt foarte interesat de părerile voastre despre ea. Sau poate aveți o soluție mult mai bună, dacă da, aș dori să o aud.

Rezultatele cercetării

Rezultatele cercetării mele au fost:
1. obține fișierele în afara rădăcinii documentului, folderul www;
2. interzice orice acces direct la folderul care conține fișierele;
3. lasă un script să gestioneze cererile către fișiere;
Sursele pentru aceste puncte sunt - cel puțin în mare parte - incluse în întrebarea mea.

Soluție

  1. Am instalat plugin-ul »wp-downloadmanager«
    • în acest proces va fi creat un folder numit files în interiorul wp-content;
  2. Am adăugat un fișier .htaccess în noul folder files:
    • conținutul fișierului .htaccess:
      Options All -Indexes
      Order Deny,Allow
      Deny from all
  3. Am schimbat o opțiune importantă a plugin-ului:
    • opțiunea la care mă refer este metoda de descărcare;
    • am schimbat-o în afișare fișier;
  4. Am adăugat câteva fișiere prin interfața plugin-ului:
    • există o opțiune numită permis să descarce;
    • care permite restricționarea accesului în funcție de rolul/capabilitățile utilizatorului;
  5. Am făcut câteva teste:
    • niciun acces direct la fișiere - nici prin bara de adrese, nici prin wget;
    • descărcările publice pot fi accesate prin legăturile permanente - am ales »legături permanente frumoase: da« și »URL descărcare: ID fișier« în panoul de opțiuni - bara de adrese/wget funcționează și ea;
    • descărcările protejate, restricționate sunt accesibile doar dacă sunteți autentificat ca utilizator cu rolurile/capabilitățile corecte;

Gânduri finale

Cred că soluția respectă destul de mult rezultatele cercetării. Cu excepția plasării fișierelor în exterior. Dar restricționarea accesului la/protejarea directorului și lăsarea unui script să gestioneze cererile de fișiere este îndeplinită. Restricționarea accesului este gestionată de .htaccess, iar scriptul în acest caz este plugin-ul wp-downloadmanger.

Note suplimentare

  • este absolut necesar să schimbați metoda de descărcare în afișare fișier
  • și, desigur, este obligatoriu ca fișierul .htaccess să fie prezent

  • pentru a verifica faptul că plugin-ul preia rolul scriptului, aruncați o privire la wp-downloadmanger.php - aproximativ liniile 207 până la 227 (versiunea 1.6.1); acest lucru este menit ca punct complementar la informațiile legate

30 mai 2013 02:37:57