Când oamenii vorbesc despre securitatea WordPress, permisiunile fișierelor și proprietatea fișierelor sunt de obicei cele mai recente lucruri despre care se gândesc. Instalarea plug-in-urilor de securitate este o practică bună, importantă pentru fiecare site WordPress. Cu toate acestea, în cazul în care drepturile dvs. de acces la sistemul de fișiere nu sunt setate corect, majoritatea măsurilor dvs. de securitate pot fi ușor de ocolite de către intruși.
Accesul și drepturile de proprietate sunt foarte importante în WordPress builds. Configurarea corectă pe serverul dvs. web ar trebui să fie primul pas pe care îl faceți după instalarea WordPress. Având un set incorect de permisiuni poate provoca erori fatale care vor duce la "moartea" site-ului dvs. Drepturile de acces incorecte pot, de asemenea, să vă pună în pericol site-ul, făcându-l deschis atacurilor.
Pe lângă problemele de securitate, prezența unui set incorect de drepturi de acces poate duce la alte probleme. Ați întâmpinat vreodată un ecran alb când ați încercat pentru prima dată să descărcați un site web? Ați primit vreodată un mesaj de eroare când ați încercat să descărcați imagini într-un încărcător media? Corectarea drepturilor de acces și deținerea de fișiere și foldere deseori elimină toate aceste probleme.
În acest articol, vă vom spune totul despre drepturile de acces pentru sistemul de fișiere WordPress: ce sunt, de ce sunt importante și cum să le setați. De asemenea, vom analiza câteva principii de bază pe care le urmăresc pentru a menține sistemul meu de fișiere intact. În plus, vom descoperi cele două configurații cele mai populare ale serverului WordPress. Vom explica modul în care acestea diferă și, mai important, modul de stabilire a drepturilor de acces corespunzătoare pentru fiecare dintre ele.
Terminal vs. client FTP
În tot acest articol, vom folosi terminalul pentru a schimba drepturile de acces și de proprietate. De ce să nu folosiți un client FTP? Motivul este că FTP este oarecum limitat pentru nevoile noastre. FTP poate fi folosit pentru a transfera fișiere, precum și pentru a schimba drepturile de acces la fișiere și foldere, dar nu poate schimba parametrii de proprietate.
Pentru a executa comenzile listate în acest articol, va trebui să vă conectați la server folosind comanda SSH. Dacă nu sunteți familiarizat cu terminalul și SSH, puteți citi despre acest lucru în articolul "Introducere în comenzile Linux".
Utilizatori și grupuri
Înainte de a începe, trebuie să vorbim pe scurt despre ce grupuri și utilizatori sunt, mergând în același timp cu definirea drepturilor de acces.
Utilizatorii și grupurile sunt importante deoarece vă permit să setați privilegii pentru toate fișierele și folderele. Proprietarii de fișiere au de obicei autoritatea deplină de a gestiona acest fișier; Alți utilizatori care aparțin aceluiași grup pot avea mai puțină autoritate pentru a gestiona acest fișier; În timp ce ceilalți utilizatori, în general, nu au autoritate. Aceste privilegii sunt de obicei denumite drepturi de acces.
Ce sunt permisiunile de fișiere?
Drepturile de acces determină ce pot face utilizatorii cu fișierul. Drepturile de acces sunt reprezentate ca o secvență de cifre, cum ar fi, de exemplu, 644 sau 777, numită mod de acces. Dacă ați utilizat plug-in-uri anterioare în WordPress, atunci unele dintre ele au cerut cel mai probabil să modificați drepturile de acces la fișiere sau foldere, deoarece pluginul nu poate scrie. Prin modificarea permisiunilor de fișiere, permiteți serverului web să acceseze aceste fișiere sau foldere.
Modul de acces este un set de operatori "cine poate face ce", în care fiecare cifră corespunde operatorului "cine":
- Prima cifră. Ce poate face utilizatorul este proprietarul acestui fișier.
- Al doilea număr. Ce pot face ceilalți utilizatori din grupul de proprietari.
- A treia cifră. Ce pot face toți ceilalți utilizatori (inclusiv vizitatorii site-ului)?
Apoi vine un număr care corespunde operatorului "ce", care este suma oricărei combinații a următoarelor numere:
- 4. Citiți fișierul sau citiți numele fișierelor din dosar
- 2. Scrieți sau modificați fișierul sau modificați conținutul din dosar
- 1. Rulați sau rulați fișierul sau accesați fișierele din dosar
Aceste numere sunt numite privilegii asociate anumitor utilizatori în modul de acces. Rețineți că privilegiile sunt diferite pentru fișiere și foldere.
Utilizarea modului de acces corect este foarte importantă. Pentru a ilustra mai bine acest lucru, să ne imaginăm rolurile utilizatorilor în WordPress. Pe site-ul WordPress, participanții și administratorii au un set diferit de caracteristici. Participanții pot crea înregistrări de bloguri noi, dar nu pot adăuga pluginuri. Administratorii, pe de altă parte, pot adăuga pluginuri și pot crea intrări în blog. Administratorii pot chiar schimba aspectul site-ului dacă doresc. Lanțul de autorități împărtășește ceea ce pot face utilizatorii în diferite roluri. Același lucru este valabil și pentru modurile de acces, cu excepția faptului că nu lucrăm cu intrări în blog și opțiuni de subiect, ci cu fișiere și foldere de pe serverul nostru.
Modificarea modurilor de acces
Clienții FTP oferă de obicei o interfață prin care puteți schimba cu ușurință modul de acces pentru fișierele și folderele dvs. Iată o captură de ecran a interfeței în clientul meu FTP:
Dacă aveți acces la terminalul serverului dvs., puteți utiliza comanda chmod pentru a modifica modul de acces la fișiere sau directoare:
Pentru a schimba modul de acces pentru toate fișierele sau folderele, utilizați chmod în tandem cu comanda de căutare. De exemplu, îl puteți folosi pentru a modifica drepturile de acces la toate fișierele din 644:
Sau utilizați-l pentru a modifica drepturile de acces la toate dosarele dvs. la 755:
Consultați "Schimbarea drepturilor de acces la fișiere în WordPress" pentru a obține un ghid pentru modificarea modurilor de acces.
Diferența între 644 și 777
Să aruncăm o privire asupra unor moduri de acces și asupra modului în care acestea afectează site-ul nostru.
Ce va însemna scriptul PHP cu modul de acces 644? După ce am explicat mai sus cum funcționează modurile de acces, putem decoda ce ne permite exact să facem acest mod cu scriptul nostru:
- Privilegiile proprietarului sunt "contează" (4) + "scrie" (2) = 6
- Privilegiile grupului de proprietari sunt egale cu "numărul" (4) = 4
- Privilegiile tuturor celorlalți utilizatori sunt egale cu "numărul" (4) = 4
Pur și simplu, aceasta înseamnă că:
- Dacă suntem proprietarii scenariului, atunci îl putem citi și îl putem schimba;
- Toți ceilalți utilizatori o pot citi numai.
După cum putem vedea, 644 este un mod de acces bun pentru scriptul nostru PHP. Putem face schimbări, iar serverul nostru poate conta.
Acum să trecem la dosare. Ce se întâmplă dacă deținem un dosar pentru care modul de acces este setat la 777? Acest mod poate fi scris astfel:
- Privilegiile proprietarului sunt "conta" (4) + "scrie" (2) + "îndeplinesc" (1) = 7
- Privilegiile grupului de proprietari sunt egale cu "numărul" (4) + "scrie" (2) + "îndeplinesc" (1) = 7
- Privilegiile tuturor celorlalți utilizatori sunt egale cu "numărul" (4) + "scrie" (2) + "executa" (1) = 7
Aceasta înseamnă că:
- Orice utilizator poate obține o listă de nume de fișiere în dosarul dvs.
- Orice utilizator poate crea, modifica și șterge orice fișier din folderul dvs.
- Orice utilizator poate accesa fișierele dvs. din acest dosar
Evident, 777 este un mod de accesare rău pentru orice parte a site-ului nostru WordPress, deoarece orice utilizator poate adăuga fișiere în directorul nostru sau chiar șterge scripturi. Mai rău, orice utilizator poate executa cod malitios, punând astfel în pericol site-ul nostru.
Configurațiile serverului WordPress
Există multe configurații de servere diferite. Configurațiile diferite necesită diferite moduri de acces pentru funcționarea corectă și sigură a WordPress. Vom analiza cele două configurații cele mai populare, precum și permisiunile corecte pentru ele:
Configurație server standard:
Configurația generală a serverului sau configurația suEXEC:
Principala diferență dintre aceste două configurații este modul în care serverul este pornit.
Drepturi de acces pentru configurația standard a serverului WordPress
Deținerea de fișiere și foldere în WordPress
În primul rând, trebuie să ajustăm dreptul de proprietate asupra dosarelor și fișierelor pentru fișierele noastre WordPress. Va trebui să ne asigurăm de următoarele:
Apoi, pentru a găsi grupurile la care aparține serverul dvs., puteți insera temporar următorul fragment PHP într-unul dintre scripturile dvs. WordPress:
Dacă utilizatorul și serverul dvs. web nu aparțin aceluiași grup, puteți utiliza următoarea comandă în terminal pentru a adăuga utilizatorul la unul dintre grupurile de servere:
Drepturi de acces pentru WordPress
Toate folderele și fișierele noastre trebuie să aparțină utilizatorilor corecte. Este timpul să configurați modurile de acces. Va trebui să vă amintiți următoarele:
- Toate fișierele trebuie să fie 664.
- Toate folderele trebuie să fie 775.
- wp-config.php ar trebui să fie 660.
Iată ce vrem să obținem cu modurile de acces:
Puteți găsi că permiterea WordPress de a face absolut totul cu dosarele noastre nu este sigură. Nu vă faceți griji - facem acest lucru deoarece WordPress are nevoie de anumite capabilități pentru a crea și modifica fișiere. WordPress ne permite să descărcați și să eliminăm teme și pluginuri, să editați scripturi și stiluri prin backend-ul administratorului. Fără aceste drepturi de acces, ar trebui întotdeauna să descărcăm manual teme și plug-in-uri prin FTP.
Puteți utiliza clientul dvs. FTP pentru a modifica modurile de acces sau puteți utiliza următoarele comenzi în dosarul WordPress pentru a configura rapid drepturile de acces pentru toate fișierele și folderele:
Rețineți că unele servere web din acest plan sunt mai stricte decât altele. Dacă serverul dvs. este strict, atunci setarea wp-config.php în 660 poate determina încetarea activității site-ului. În acest caz, lasă doar 664.
Drepturi de acces pentru configurația SuEXEC
- Toate fișierele trebuie să fie 644.
- Toate folderele trebuie să fie 755.
- wp-config.php ar trebui să fie 600.
Similar cu cazul anterior, drepturile de acces pot fi descifrate după cum urmează:
Din nou, puteți utiliza clientul FTP pentru a schimba modul de acces sau puteți utiliza următoarele comenzi în dosarul WordPress pentru a modifica rapid drepturile de acces la toate fișierele și folderele:
Ca și în cazul configurației standard WordPress, serverul dvs. poate fi mai strict decât restul, astfel încât fișierul wp-config.php nu va fi setat la 600. În acest caz, îl puteți seta la 640 sau, dacă nu, , apoi 644.
Respectați întotdeauna aceste instrucțiuni și fișierele dvs. vor fi salvate cu atenție de la intruși.
Erori comune
O greșeală obișnuită pe care o fac oamenii este că dosarul de descărcare este pus în 777. Unii oameni fac acest lucru pentru că primesc erori atunci când încearcă să încarce o imagine pe site-ul lor, iar 777 rezolvă repede problema. Nu acordați niciodată acces nerestricționat tuturor utilizatorilor, altfel serverul dvs. va fi vulnerabil la atacuri. Dacă investigați conducerea noastră, atunci nu ar trebui să aveți probleme cu descărcarea fișierelor pe site-ul dvs.
Uneori plug-inurile pot solicita instalarea drepturilor pentru un fișier în 777. În astfel de situații, puteți seta temporar permisiunile la 777, dar asigurați-vă că returnați drepturile de acces înapoi după ce ați terminat lucrul cu pluginul.
"WordPress poate crea, modifica și șterge fișiere și foldere."
Nu exact Wordpress. Apache face acest lucru, iar Apache funcționează sub apache apache. Și, în consecință, am o întrebare pentru specialiști - cea mai simplă soluție, după părerea mea, este să vă împingeți pe utilizatorul dvs. în grupul Apache, pentru a nu-l deranja în mod regulat la nivelul drepturilor, există vreun dezavantaj în această decizie?
Pentru a fi mai precis, wordpress poate fi instalat pe un server unde Apache nu este utilizat. Și în cazul apache-ului c, utilizatorul și grupul în care se execută scripturile php sunt controlate de parametrii de configurare și / sau folosind extensii cum ar fi SuExec și altele asemenea.
În general, "împingerea" utilizatorului într-un grup comun cu serverul web este complet sigur. Dar soluția cu SuExec este mai adevărată.