Documentul alb al securității WordPress

Context

Acest document este o analiză și o explicație a dezvoltării softului de bază WordPress și a proceselor sale de securitate asociate, precum și o examinare a securității inerent construită direct în el. Persoanele de decizie care evaluează WordPress ca sistem de gestiune de conținut sau ca un cadru de lucru (framework) pentru aplicații web ar trebui să folosească acest document în analizele și deciziile lor, iar dezvoltatorii să se refere la el pentru a se familiariza cu componentele de securitate și cu cele mai bune practici ale software-ului.

Informațiile din acest document sunt actualizate la nivelul ultimei versiuni stabile a software-ului, WordPress 4.1 la momentul publicării, dar ar trebui să fie considerate relevante de asemenea și pentru cele mai recent lansate versiuni ale software-ului deoarece compatibilitatea înapoi este o preocupare puternică a echipei de dezvoltatori WordPress. Măsurile speciale de securitate vor fi prezentate pe măsură ce ele au fost adăugate la softul de bază în versiunile lansate. Recomandăm cu tărie rularea întotdeauna a ultimei versiuni stabile de WordPress pentru a se asigura cea mai securizată experiență posibilă.

Rezumat

WordPress este un dinamic sistem de gestiune de conținut open-source ce este utilizat pentru a susține milioane de site-uri web, aplicații web și bloguri. Astăzi propulsează peste 23% din primele 10 milioane de site-uri web din internet. Ușurința în utilizare, extensibilitatea și o matură comunitate de dezvoltatori fac din WordPress o opțiune populară și o alegere sigură pentru site-uri web de toate dimensiunile.

De la apariția sa în 2003, WordPress s-a întărit continuu astfel că nucleul său poate să răspundă amenințărilor obișnuite de securitate și să le trateze corespunzător, incluzând topul primelor 10 identificate de The Open Web Application Security Project (OWASP) ca vulnerabilități comune de securitate, ce sunt discutate în acest document.

Echipa de securitate WordPress, în colaborare cu echipa de conducere a nucleului WordPress și sprijinită de comunitatea globală WordPress, lucrează la identificarea și soluționarea problemelor de securitate din softul de bază disponibil pentru distribuție și instalare de pe WordPress.org, precum și documentarea și recomandarea celor mai bune practici cu privire la securitate pentru autorii terți de module și teme.

Dezvoltatorii de site-uri și administratorii trebuie să acorde o atenție sporită utilizării corecte a API-urilor de bază și a configurărilor serverului de dedesubt care au fost sursa vulnerabilităților obișnuite, precum și să se asigure că toți utilizatorii folosesc parole puternice pentru a accesa WordPress.

Privire de ansamblu asupra WordPress

WordPress este un sistem de gestiune de conținut (CMS content management system) gratuit și open source. Este softul CMS cu cea mai largă utilizare din lume și propulsează mai mult de 23% din topul primelor 10 milioane de site-uri web1, ceea ce-i dă o cotă de piață estimată de 60% din totalul site-urilor ce folosesc CMS-uri.

WordPress este licențiat sub Licență publică generală (GPL – General Public License – v2 sau mai nouă) ce oferă patru libertăți fundamentale ce pot fi considerate „carta drepturilor” WordPress:

  1. Libertatea de a rula programul, în orice scop.
  2. Libertatea de a studia cum funcționează programul și de a-l modifica să facă ceea ce dorești tu.
  3. Libertatea de a-l redistribui.
  4. Libertatea de a distribui altora copii ale versiunilor tale modificate.

Conducerea echipei de bază WordPress

Proiectul WordPress este o meritocrație și este derulat de o echipă de bază și condusă de co-creatorul și șeful dezvoltării – Matt Mullenweg. Echipa gestionează toate aspectele proiectului, incluzând dezvoltarea de bază, site-ul WordPress.org și inițiativele comunității.

Echipa de bază e formată din Matt Mullenweg, cinci dezvoltatori șefi și mai mult de o duzină de dezvoltatori principali cu acces permanent la surse. Acești dezvoltatori au ultimul cuvânt în deciziile tehnice și conduc discuțiile despre arhitectură și eforturile de implementare.

WordPress are un număr de dezvoltatori contribuitori. Unii dintre ei sunt foști sau actuali comiteri, alții posibil viitori comiteri. Acești dezvoltatori sunt contribuitori veterani, persoane de încredere care și-au câștigat un mare respect printre confrații lor. Pe măsura nevoilor, WordPress a avut și comiteri invitați, persoane ce au primit acces de comit, uneori pe componente specifice, temporar sau pe o perioadă de test.

Dezvoltatorii de bază și contribuitorii sunt cei care în principal ghidează dezvoltarea WordPress-ului. La fiecare versiune de WordPress contribuie la cod sute de dezvoltatori. Acești contribuitori de bază sunt voluntari care contribuie la baza de cod într-un fel sau altul.

Ciclul de lansare WordPress

Fiecare ciclu de lansare este condus de unul sau mai mulți dezvoltatori de bază WordPress. Un ciclu de lansare durează de obicei 4 luni de la întâlnirea inițială de stabilire a obiectivelor până la lansarea noii versiuni.

Un ciclu de lansare are următoarea structură2:

  • Faza 1: Planificarea și stabilirea conducerii echipei. Asta se face în camera de discuții #core pe Slack. Șeful versiunii discută facilitățile următoarei versiuni de WordPress. Contribuitorii WordPress se implică în această discuție. Șeful de versiune va identifica conducătorii de echipe pentru fiecare dintre facilitățile alese.
  • Faza 2: Începe munca de dezvoltare. Șefii de echipe formează echipele și lucrează la facilitățile ce le-au fost desemnate. Sunt planificate discuții regulate pentru a fi siguri că dezvoltarea merge înainte.
  • Faza 3: Beta. Sunt lansate versiunile beta de test, iar beta-testării sunt rugați să înceapă raportarea erorilor. Din această fază nu se mai aduc contribuții pentru noi îmbunătățiri sau cereri de facilități. Autorii terți de module și teme sunt încurajați să își testeze propriul cod în condițiile viitoarelor modificări.
  • Faza 4: Candidat pentru lansare. Din acest punct se îngheață șirurile de tradus. Munca este orientată doar spre păstrarea compatibilităților și eliminarea blocajelor.
  • Faza 5: Lansare. Versiunea WordPress este lansată și devine disponibilă pentru actualizare în panoul de control din administrarea WordPress.

Numerotarea versiunilor și actualizărilor de securitate

O versiune majoră de WordPress este dictată de primele două numere din secvență. De exemplu 3.5 este o versiune majoră, cum sunt și 3.6, 3.7, sau 4.0. Nu există un „WordPress 3” sau „WordPress 4” și fiecare versiune majoră este numită prin numerotarea sa, de ex. „WordPress 3.9”.

Versiunile majore pot să adauge facilități noi pentru utilizator și API-uri pentru dezvoltatori. Deși e tipic în lumea softului ca o versiune „majoră” să însemne și ruperea compatibilității înapoi, WordPress se străduiește ca niciodată aceasta să nu fie ruptă. Compatibilitatea înapoi este una dintre cele mai importante filosofii ale proiectului, cu scopul de a ușura actualizarea atât pentru utilizatori cât și pentru dezvoltatori.

O versiune minoră de WordPress este dictată de a treia cifră. Versiunea 3.5.1 este una minoră, la fel ca 3.4.23. O versiune minoră este rezervată pentru corectarea vulnerabilităților de securitate și rezolvarea erorilor critice. Deoarece noi versiuni de WordPress sunt lansate atât de frecvent — ținta este ca o versiune majoră să apară la fiecare 4-5 luni, iar cele minore pe măsură ce este necesar — nu este nevoie decât de versiuni majore și minore.

Compatibilitatea înapoi a versiunilor

Proiectul WordPress este dedicat cu hotărâre compatibilității înapoi. Această dedicare înseamnă și că teme, module și cod personalizat vor continua să funcționeze odată ce softul de bază WordPress este actualizat, încurajând deținătorii site-urilor să mențină actualizat WordPress-ul la ultima versiune sigură.

WordPress și securitatea

Echipa de securitate a WordPress

Echipa de securitate WordPress e formată din aproximativ 25 de experți incluzând dezvoltatorii șefi și cercetătorii în securitate — aproximativ jumătate din ei angajați ai Automattic (realizatorii lui WordPress.com, prima și cea mai mare platformă de găzduire WordPress de pe web) și un număr care lucrează în domeniul securității pe web. Echipa se consultă cu cercetători de încredere renumiți și cu companii de găzduire3.

Echipa de securitate WordPress colaborează adesea cu alte echipe de securitate pentru a rezolva probleme de interdependență, cum ar fi rezolvarea vulnerabilității din interpretorul XML al PHP, folosit de API-ul XML-RPC livrat cu WordPress, în WordPress 3.9.24. Rezolvarea acestei vulnerabilități a fost rezultatul unui efort comun al echipelor de securitate ale WordPress și Drupal.

Riscuri, procese și istoria securității WordPress

Echipa de securitate WordPress crede în devoalarea responsabilă prin alertarea imediată a echipei de securitate cu privire la orice potențială vulnerabilitate. Potențialele vulnerabilități de securitate pot fi semnalate echipei de securitate direct la adresa de email: security@wordpress.org5. Echipa de securitate comunică între membrii săi pe o listă privată de email și lucrează pe un Trac privat dar neînchis (walled-off) pentru urmărirea, testarea și rezolvarea erorilor și problemelor de securitate.

Fiecare raport de securitate este confirmat în momentul primirii și echipa lucrează să verifice vulnerabilitatea și să determine gravitatea ei. Dacă e confirmată, echipa de securitate face planificarea unei reparații (patch) ce poate fi asignată unei viitoare versiuni de WordPress sau poate fi imediat lansată o versiune de securitate, în funcție de gravitatea problemei.

Pentru o versiune imediată de securitate, echipa de securitate va publica o recomandare pe site-ul de știri WordPress.org News6 anunțând lansarea și detaliind modificările. În acest mesaj persoana responsabilă de descoperire va primi o recunoaștere, încurajându-se astfel pe viitor continuarea raportărilor responsabile.

Administratorii WordPress văd în panoul de control al site-urilor lor o notificare de actualizare când o nouă versiune e disponibilă, iar mergând pe actualizarea manuală utilizatorii sunt redirectați la ecranul Despre WordPress care detaliază modificările. Dacă administratorii au validată actualizarea automată a noilor versiuni în culise, vor primi un email după ce actualizarea s-a terminat.

Actualizarea automată în culise a versiunilor de securitate

Începând de la versiunea 3.7, WordPress a introdus actualizarea automată în culise pentru toate versiunile minore7, cum ar fi 3.7.1 și 3.7.2. Echipa de securitate WordPress poate identifica, repara și împinge automat îmbunătățirile de securitate pentru WordPress fără ca proprietarul site-ului să trebuiască să facă ceva din partea sa, actualizarea de securitate instalându-se automat.

Când este publicată o actualizare de securitate pentru versiunea curentă stabilă de WordPress, echipa nucleului va împinge de asemenea actualizările de securitate pentru toate versiunile ce sunt capabile de actualizare în culise (de la WordPress 3.7), astfel că aceste mai vechi dar încă recente versiuni de WordPress să primească și ele aceste îmbunătățiri de securitate.

Proprietarii individuali de site-uri pot opta pentru înlăturarea actualizărilor automate în culise printr-o simplă modificare în fișierul lor de configurare, dar păstrarea acestei funcționalități este recomandată cu tărie de echipa de bază, precum și cea de a rula ultima versiune stabilă de WordPress.

Top 10 2013, OWASP

Proiectul de securitate a aplicațiilor web deschise (Open Web Application Security Project, OWASP) este o comunitate internet dedicată securității aplicațiilor pentru web. Lista Top10 OWASP8 se focalizează pe identificarea celor mai serioase riscuri de securitate ale aplicațiilor pentru un larg spectru de organizații. Cele din Top 10 sunt selectate și prioritizate printr-o combinație a estimărilor consensuale privind exploatarea, detectarea și impactul acestora.

Următoarele secțiuni pun în discuție API-urile, resursele și politicile pe care WordPress le folosește pentru a întări softul de bază dar și modulele și temele terților în fața potențialelor riscuri.

A1 – Injecție

Există un set de funcții și API-uri disponibile în WordPress pentru a-i sprijini pe dezvoltatori în a se asigura că injecția de cod neautorizat nu e posibilă, și în ai ajuta să valideze și igienizeze datele. Sunt disponibile documentații și bune practici9 despre utilizarea acestor API-uri pentru a proteja, valida, sau igieniza datele de intrare sau ieșire în HTML, URL-uri, antete HTTP și la interacțiunea cu baza de date ori sistemul de fișiere. Administratorii pot în plus să restricționeze tipurile de fișiere ce pot fi încărcate via filtre.

A2 – Autentificare defectuoasă și gestiunea sesiunilor

Softul de bază WordPress gestionează conturile de utilizator și detaliile de autentificare cum ar fi ID-ul utilizatorului, numele și parola pe partea serverului, la fel și cookie-urile de autentificare. Parolele sunt protejate în baza de date folosind tehnici standard de „sărare și întindere” salting&stretching. Sesiunile existente sunt distruse după deautentificare începând cu versiunea WordPress 4.0.

A3 – Scripturi inter-site-uri (XSS)

WordPress asigură o gamă de funcții ce pot ajuta la punerea în siguranță a datelor furnizate de utilizatori10. Utilizatorii de încredere, administratorii sau editorii într-o instalare singulară de WordPress, sau doar administratorii de site-uri în WordPress multi-site, pot publica HTML sau JavaScript nefiltrat după necesități, cum ar fi în interiorul unui articol sau pagini. Ceilalți utilizatori și elementele de conținut trimise spre publicare sunt implicit filtrate pentru a fi înlăturate entitățile periculoase, folosind biblioteca KSES prin funcția wp_kses.

Ca exemplu, echipa nucleului WordPress a observat că funcția the_search_query() a fost folosită greșit de majoritatea autorilor de teme, care n-au filtrat pentru siguranță (escaping) rezultatul ei pentru a fi folosit în HTML. Într-o foarte rară rupere a compatibilității înapoi, ieșirea funcției a fost schimbată în WordPress 2.3 pentru a fi pre-filtrată pentru securitate (pre-escaped).

A4 – Referință directă nesecurizată la obiect

WordPress furnizează destul de des referințe directe către obiecte, cum ar fi identificatori numerici unici de conturi utilizator sau conținut disponibil în URL sau câmpuri de formulare. Cu toate că acești identificatori dezvăluie informații direct din sistem, elaboratul sistem de control al accesului pe care îl are WordPress împiedică cererile neautorizate.

A5 – Configurarea greșită a securității

Majoritatea operațiunilor de configurare a securității WordPress sunt limitate la un singur administrator autorizat. Setările implicite ale WordPress sunt evaluate în mod continuu la nivelul echipei de bază, și aceasta furnizează documentații și exemple de bună practică pentru a întări securitatea configurării serverelor ce rulează site-uri WordPress11.

A6 – Expunerea datelor sensibile

Parolele de acces ale utilizatorilor sunt „sărate și secționate” (salted and hashed) pe baza cadrului de tratare a parolelor din PHP-ul portabil Portable PHP Password Hashing Framework12. Sistemul de permisiuni WordPress este folosit pentru a controla accesul la informații private cum ar fi cele de identificare a utilizatorilor, adrese de email ale comentatorilor, conținut publicat privat, etc. În WordPress 3.7, a fost inclus în softul de bază un evaluator de tărie a parolei care să ofere informații suplimentare utilizatorilor care-și stabilesc parola și sfaturi pentru a o întări. WordPress are de asemenea o setare opțională de configurare pentru cerințe HTTPS.

A7 – Lipsă de control a accesului la nivel de funcții

WordPress verifică autorizarea corespunzătoare și permisiunile pentru orice cereri de acces la nivel de funcție înainte de a fi execută acțiunea. Accesul sau vizualizarea unor URL-uri administrative, meniuri și pagini, fără autentificare corespunzătoare este integrată strâns cu sistemul de autentificare pentru a preveni accesul unor utilizatori neautorizați.

A8 – Falsificare cereri inter-site-uri (CSRF – Cross Site Request Forgery)

WordPress folosește garanți (tokens) criptografici, numiți nunici nonces13, pentru a valida intenția unor cereri de acțiuni din partea unor utilizatori autorizați pentru a asigura protecția împotriva potențialelor amenințări CSRF. WordPress oferă un API pentru generarea acestor garanți pentru crearea și verificarea temporară a unicității acestora, ei fiind limitați la un anumit utilizator, o acțiune specifică, un obiect specific, o perioadă specifică de timp și care pot fi adăugați unor formulare și URL-uri după nevoie. În plus, toți nunicii sunt invalidați la deautentificare.

A9 – Folosirea componentelor cu vulnerabilități cunoscute

Echipa de bază WordPress monitorizează îndeaproape cele câteva biblioteci incluse și cadre de lucru (frameworks) integrate în WordPress pentru funcționalitățile de bază. În trecut echipa de bază a contribuit la mai multe terțe componente pentru a le face mai sigure, cum a fost și actualizarea pentru repararea unei vulnerabilități inter-site în TinyMCE în WordPress 3.5.214.

Dacă e nevoie, echipa de bază poate decide să ramifice (fork) sau să înlocuiască componente externe critice, cum s-a întâmplat când a fost înlocuită oficial biblioteca SWPUpload cu Plupload în 3.5.2, și când o ramificare securizată a SWFUpload a fost făcută disponibilă de echipa de securitate15 pentru acele module care au continuat să folosească pe termen scurt SWFUpload.

A10 – Redirectări și trimiteri nevalidate

Sistemul intern de autentificare și control acces al WordPress va asigura protecția împotriva încercărilor de a direcționa utilizatorii spre destinații nedorite sau redirectări automate. Această funcționalitate este de asemenea accesibilă dezvoltatorilor de module printr-un API, wp_safe_redirect()16.

Alte riscuri de securitate și motive de îngrijorare

Atacuri la procesarea XXE (XML eXternal Entity) a entităților externe XML

La procesarea XML, WordPress invalidează încărcarea unor entități XML personalizate pentru a preveni atât atacurile de tip Entitate externă cât și cele de tip Expansiune entitate. Dincolo de funcționalitatea de bază a PHP, WordPress nu asigură un API suplimentar de procesare XML pentru autorii de module.

Atacuri SSRF (Server Side Request Forgery) – Cereri falsificate către server

Cererile HTTP lansate de WordPress sunt filtrate pentru a preveni accesul la adrese IP private sau de retur (loopback). În plus, accesul este permis numai pe anumite porturi HTTP standard.

Securitatea modulelor și temelor WordPress

Tema implicită

WordPress are nevoie de o temă validată pentru a face conținutul vizibil în față pe site. Tema implicită, livrată cu nucleul WordPress, (acum „Twenty Fifteen„) a fost revizuită viguros și testată din punctul de vedere al securității atât de echipa dezvoltatorilor de teme cât și de echipa de dezvoltare de bază.

Tema implicită poate să servească ca punct de plecare pentru dezvoltarea de teme personalizate, iar dezvoltatorii de site-uri pot să creeze teme copil care să includă unele personalizări dar să se bazeze pe tema implicită pentru majoritatea funcționalității și a securității. Tema implicită poate fi înlăturată cu ușurință de administrator dacă nu e necesară.

Depozitarele de module și teme de la WordPress.org

Sunt aproximativ 30.000+ de module și 2.000+ de teme listate pe site-ul WordPress.org. Aceste teme și module sunt înscrise pentru a fi incluse și sunt manual revizuite de voluntari înainte de a deveni disponibile în depozitar.

Includerea modulelor și temelor în depozitare nu garantează că acestea nu au vulnerabilități de securitate. Există ghiduri pentru dezvoltatorii de module pe care aceștia să le consulte înainte de la depune pentru includerea în depozitar a unui modul17, iar pe WordPress.org este disponibilă și o documentație extensivă despre cum se dezvoltă o temă WordPress18.

Fiecare modul și fiecare temă au posibilitatea de a fi dezvoltate în mod continuu de către proprietarul modulului sau temei respective, iar orice următoare reparații sau facilități adăugate pot fi încărcate în depozitar și făcute disponibile utilizatorilor ce au instalat acel modul sau temă împreună cu o descriere a modificărilor. Administratorii de site-uri sunt notificați despre modulele ce trebuie să fie actualizate prin panoul de control din administrare.

Când este descoperit un modul cu vulnerabilități de către echipa de securitate WordPress, aceasta contactează autorul modulului și lucrează împreună să-l corecteze și să lanseze o nouă versiune sigură. Dacă răspunsul autorului modulului întârzie și vulnerabilitatea e severă, tema/modulul sunt scoase din directorul public, iar în unele cazuri, reparate și actualizate de către echipa de securitate.

Echipa de revizuire a temelor

Echipa de revizuire a temelor este un grup de voluntari, conduși de membri cheie consacrați ai comunității WordPress, care revizuiesc și aprobă temele depuse pentru a fi incluse în directorul oficial de teme WordPress. Echipa ține la zi ghidul oficial de revizuire a temelor19, datele unității de testare a temei20 și modulul de verificare temă21, și încearcă să angajeze și să educe comunitatea dezvoltatorilor de teme WordPress cu privire la cele mai bune practici de dezvoltare. Includerea în grup e moderată de comiteri de bază ai echipei de dezvoltare WordPress.

Rolul furnizorului de găzduire web în securitatea WordPress

WordPress poate fi instalat pe o mulțime de platforme. Cu toate că nucleul software al WordPress asigură multe posibilități de a opera o aplicație web sigură, trecute în revistă în acest document, configurarea sistemului de operare și a serverului web de dedesubt care îl găzduiește este la fel de importantă pentru a menține securizate aplicațiile WordPress.

O notă despre WordPress.com și securitatea WordPress

WordPress.com este cea mai mare instalare WordPress la nivel global, ce aparține și este gestionată de Automattic, Inc., fondată de Matt Mullenweg, co-creatorul proiectului WordPress. WordPress.com deși rulează softul de bază WordPress, are propriile procese de securitate, de risc și de soluționare22. Acest document se referă la securitatea softului descărcat de la WordPress.org pentru o platformă auto-găzduită pe orice server din lume.

Anexă

API-urile de bază ale WordPress

Interfața de programare a softului de bază WordPress, Application Programming Interface (API), constă din mai multe API-uri individuale23, fiecare acoperind funcțiile implicate în, și folosite pentru, un set dat de funcționalități. Împreună, acestea formează interfața proiectului ce permite modulelor și temelor să interacționeze cu, să modifice, sau să extindă funcționalitatea de bază a WordPress într-un mod sigur și securizat.

În vreme ce fiecare API al WordPress oferă bune practici și căi standard de a interacționa cu și a extinde softul de bază WordPress, următoarele API-uri sunt cele mai îndreptățite de a impune și întări securitatea WordPress:

API-ul bazei de date

API-ul bazei de date24, adăugat în WordPress 0.71, oferă metoda corectă de a accesa date ca valori numite ce sunt stocate la nivelul bazei de date.

API-ul sistemului de fișiere

API-ul sistemului de fișiere25, adăugat în WordPress 2.626, a fost inițial creat pentru facilitatea automată de actualizare a WordPress-ului. API-ul sistemului de fișiere abstractizează funcționalitatea necesară pentru ca citirea și scrierea fișierelor locale în sistemul de fișiere să fie făcută securizat, pe o varietate de tipuri de sisteme ce găzduiesc WordPress-ul.

O face prin clasa WP_Filesystem_Base, precum și alte câteva sub-clase ce implementează diferite moduri de conectare la sistemul de fișiere, în funcție de suportul individual al sistemului gazdă. Orice temă sau modul ce are nevoie să scrie fișiere local trebuie s-o facă folosind familia de clase WP_Filesystem.

API-ul HTTP

API-ul HTTP27, adăugat în WordPress 2.728 și apoi extins în WordPress 2.8, standardizează cererile HTTP pentru WordPress. API-ul gestionează cookie-urile, codarea și decodarea gzip, decodarea pe bucăți, chunk decoding (pentru HTTP 1.1), și alte variate implementări de protocol HTTP. API-ul standardizează cererile, testează fiecare metodă înainte de trimitere, și, pe baza configurării serverului, folosește metoda corespunzătoare pentru a face o cerere.

Permisiuni și API-ul utilizatorului curent

Permisiunile și API-ul utilizatorului curent29 este un set de funcții care ajută la verificarea drepturilor și autorității utilizatorului curent de a face orice sarcină sau operațiune cerută, și care pot asigura protecție și împotriva utilizatorilor neautorizați în a accesa sau executa funcții în afara capabilităților permise.

Licența pentru conținutul acestui document alb

Textul din acest document (fără a include sigla WordPress sau marca comercială) este licențiat sub CC0 1.0 Universal (CC0 1.0) Dedicată Domeniului public. Puteți copia, modifica, distribui și lucra, chiar și pentru scopuri comerciale, totul fără a cere permisiune.

Mulțumiri speciale pentru Documentul alb al securității Drupal, care ne-a oferit ceva inspirație.

Lecturi suplimentare


Creat de Sara Rosso

Contribuții din partea Barry Abrahamson, Michael Adams, Jon Cave, Helen Hou-Sandí, Dion Hulse, Mo Jangda, Paul Maiorana

Tradus de Adrian Pop, Alin Marcu

Versiunea 1.0 Martie 2015


Referințe