Kritičnosti WordPressa: perspektiva programera

Kritičnosti WordPressa: perspektiva programera

Programeri sve češće koriste CMS poput WordPressa, iako im se ta platforma ne sviđa.

Vješti programeri često radije koriste prilagođena rješenja, posebno ako ste programer koji je stvarno dobar u kodiranju. S prilagođenim rješenjem možete stvoriti vrlo elegantne aplikacije koje rade vrlo dobro. Međutim, programeri na kraju koriste CMS poput WordPressa čak i ako im se ta platforma izrazito ne sviđa.

Ovaj je članak namijenjen tim programerima i bavi se mnogim izazovima s kojima se susreću pri radu s WordPressom (WP). Objasnit ćemo koje su te poteškoće i također dati prijedlog: pomoć Pleska, koji pruža WP toolkit koji stvarno pomaže da se uzmu u obzir neke od glavnih kritičnosti najomiljenijeg CMS-a na svijetu: WordPress.

Zašto programeri koriste WordPress

Ne griješite, WordPress je najpopularniji CMS na tržištu iz vrlo dobrih razloga. U ovom odjeljku opisujemo zašto je CMS tako popularan čak i među iskusnim programerima koji zapravo mogu napisati vlastiti kod.

Prvo, WordPress je super jednostavan za instalaciju. Sve što trebate je standardno LAMP/LEMP okruženje – ​​Linux, Apache/Nginx, PHP i MySQL/MariaDB kao DBMS. Ako ga imate, možete početi instalirati WordPress.

Prilagodba je jednako jednostavna jer WP CMS dolazi s velikim rasponom dodataka, uključujući teme za prilagodbu izgleda i dojma prednjeg kraja i dodatke koji dodaju funkcionalnost. Također je moguće izraditi vlastitu temu, a iskusni programeri također mogu izraditi vlastite dodatke, ali taj je postupak složeniji.

Možda je najveći razlog popularnosti WordPressa, naravno, činjenica da je dostupan netehničkim korisnicima. Jednom instaliran WP ne zahtijeva iskustvo kodiranja ili razumijevanje softvera da bi dobro radio, korisnici početnici mogu objaviti web stranicu i postaviti instancu WordPressa odmah nakon rada.

Što je točno problem s WordPressom?

Pa, najpopularniji CMS na svijetu ima puno problema koje treba razmotriti. Ne namjeravamo dizati buku oko problema s WordPressom, ali ovo je iskrena rasprava i nadamo se da će razvojni tim koji stoji iza ovog nevjerojatno popularnog CMS-a sljedeće točke shvatiti kao pozitivnu kritiku. Evo zašto mislimo da je WordPress frustrirajući za programere:

Široko sposoban, ali nikad izvrstan

Početak rada s WordPressom bio je jednostavan. WP je rođen da bude platforma za one koji žele pisati i objavljivati ​​blog. CMS se potpuno promijenio tijekom godina i sada nije nimalo sličan svojim skromnim počecima. Neki ga ljudi koriste kao osnovni sustav za upravljanje cijelom web stranicom, kao platformu za online trgovine pa čak i kao način za generiranje statičnih web stranica (ludo, ali vidjeli smo i to tijekom godina)

To na neki način naglašava koliko je CMS prilagodljiv i slažemo se s tom izjavom, ali problem s tolikom fleksibilnošću je taj što postaje teško istaknuti se u bilo kojoj pojedinačnoj ulozi. Jedan od načina da to shvatite jest proviriti kroz leću dodataka: tisuće dostupnih dodataka za WordPress pokazuju kako ljudi pokušavaju natjerati WordPress da bude nešto što jednostavno nije ili još gore, da radi nešto što nije u stanju ili ako radi, čini to loše. Iz tog razloga, kada koristimo WordPress, a koristimo ga često i rado, nikada ga ne učitavamo s dodacima koji nisu striktno potrebni. U tom trenutku radije ih radimo sami.

Jasno je da je WordPress napravljen za ovaj "sam-made" pristup i očito fleksibilnost ima mnoge prednosti, bez sumnje. Ali bez jake koncentracije na određeni zadatak, CMS se dosta bori da ponudi jasno rješenje. Ova usredotočenost na pokušaj da svima bude sve uzrokuje velike probleme. Međutim, moramo to istaknuti: WordPress još uvijek dobro funkcionira kao platforma za izradu blogova i nekompleksnih web stranica i stranica za e-trgovinu.

Hakovi i krekovi: WordPress može biti otvorena vrata

Ukratko, WordPress biva hakiran danonoćno i to je najveća pritužba koju smo čuli od svijeta programera. Ne može se poreći, CMS je pun sigurnosnih rupa, nikad kraja. To je poput kratke deke: namjestite je s jedne strane, a s druge se otkrije. Djelomično je broj hakiranja posljedica popularnosti WordPressa, ali i toga koliko je WordPress open-source.

Budući da svatko može vidjeti otvoreni kod CMS-a, to hakerima omogućuje pronalaženje slabosti u kodu. Ne želimo reći da je kod otvorenog koda loš pristup, ali mislimo da priroda otvorenog koda WordPress CMS-a pridonosi njegovim beskrajnim sigurnosnim problemima.

Analiza pokazuje da WordPress stranice čine više od četvrtine interneta. WordPress tim to zna i pokušava učiniti sve što može kako bi osigurao sigurnost CMS-a, ali s razvojnim ciklusima koji su danas tako brzi može biti teško u potpunosti osigurati složenu aplikaciju. A kada sigurnosni napori ne uspiju, milijuni web stranica mogu biti ugroženi.

Nemamo očito rješenje za sigurnosne izazove WordPressa osim, naravno, očitog "ažurirajte svoju WordPress instancu". Čak i tada, ciklus izdanja WordPressa sa sobom donosi jedinstvene i beskrajne probleme.

Mnogi ljudi kažu da je briga o sigurnosti WordPressa jednostavna, i to je u velikoj mjeri istina, ali postavlja se pitanje zašto bi se od vlasnika web stranica zahtijevalo da naprave popis obaveza kako bi bili sigurni da je WordPress siguran? Zašto ovaj sigurnosni dio WordPressa nije već spreman?

  • Nekome je lako prenijeti izvršnu datoteku na WordPress, a ova bi opcija trebala biti ograničena prema zadanim postavkama. Dovoljna je samo malo pametna osoba da prenese datoteku sa zlonamjernim kodom u PHP skriptu i vaša je stranica ugrožena.
  • Trenutno se opcije mogu konfigurirati u datotečnom sustavu. Umjesto toga, WordPress bi to trebao ukloniti i pretpostaviti da je datotečni sustav "samo za čitanje". Iako jezgra WordPressa to radi, dodaci ne slijede ovaj obrazac ponašanja. Ako naiđete na dodatak koji mijenja konfiguracijsku datoteku dok je aktivno u produkciji, prestanite ga koristiti. To ukazuje na datotečni sustav koji se može pisati i, posljedično, jednostavan način za uvođenje zlonamjernih promjena. Jedno rješenje je ukloniti datoteku wp-config.php iz korijena sustava (WordPress svejedno radi), ali to nije potpuno jamstvo sigurnosti i u svakom slučaju sprječava ispravno funkcioniranje mnogih dodataka koje su nesvjesni programeri napisali rukama.
  • Prema zadanim postavkama, WordPress dopušta korisnicima onoliko pokušaja prijave koliko žele. Ovo otvara vrata napadu brutalnom silom gdje hakeri pokušavaju nasumične lozinke sve dok prijava ne uspije. WordPress CMS trebao bi onemogućiti neograničene pokušaje prijave nakon instalacije.

Ovo nije iscrpan popis, to je samo nekoliko točaka. Očito, veliko softversko rješenje, posebno rješenje otvorenog koda, ne može biti potpuno neranjivo na napad. Ali želimo reći da ozbiljni programeri nerado koriste WordPress upravo zato što je toliko ranjiv. Vješti programeri radije bi izgradili potpuno novu aplikaciju koja elegantno zadovoljava njihove potrebe i koja se može rigorozno zaštititi – bez brige o nepoznatim budućim ranjivostima.

Ili, iskorištavanjem postavki PLESK-a na najbolji način i ne učitavanjem WordPressa s "ne preporučuje se" ili još gore "besplatnim" ili još gore loše napisanim dodacima (potrebno vam je iskustvo u tom području da biste mogli donositi prosudbe o tome), još uvijek možete učiniti WordPress izvrsnom platformom i u smislu sigurnosti. Ali to više nije gospodarenje "uradi sam", potrebna je stručna ruka.

Dodaci kao izvor problema

Dobar programer ne pribjegava dodatku kada prvi put zapne. Umjesto toga, dobri programeri pokušavaju izgraditi jednostavno i elegantno rješenje. Naprotiv, uvijek se oslanjati na dodatke tako što ćete ih tražiti na internetu ili oslanjati se na one koje je predložila Zajednica vrlo je pogrešan način razmišljanja.

Naposljetku, dodatak olakšava dodavanje određenih funkcija u WordPress, što širok raspon dodataka dostupnih za WP čini snagom CMS-a – ali to je i rizik. Koliko god dodaci mogu učiniti stvari lakšim i bržim, dodaci također uključuju mnoge rizike u smislu sigurnosti i istovremeno vas tjeraju da odaberete verziju WP-a koju možete koristiti i istovremeno napuhavaju vašu WordPress instancu izvan svake održive mjere, poništavajući ili potkopavajući vašu online prisutnost, brzinu otvaranja stranice, a time i dostupnost i posljedično ispravno indeksiranje u tražilicama.

Dodaci i sigurnost

Prvo, pogledajmo sigurnosne probleme koje dodaci stvaraju. Jedno izvješće sugerira da više od polovice poznatih sigurnosnih problema s WordPressom proizlazi iz dodataka. Programeri podliježu svim dobrim praksama kojih se pridržava proizvođač dodataka – što možda i nije tako dobro. Stoga biste kao programer trebali temeljito testirati dodatak prije nego što ga upotrijebite. U određenoj mjeri ovaj postupak provjere može ukloniti vrijeme koje uštedite pomoću dodataka, tako da u tom trenutku možete razmisliti o razvoju od nule potrebne značajke za dodavanje na web mjesto.

Ograničenja WP verzija

Poznato kao "ograničenje verzije", dodaci mogu ograničiti koju verziju WP CMS-a možete pokrenuti. Sada je WordPress vrlo agresivan sa svojim ciklusom izdavanja, tako da redovito izdaje novo ažuriranje i zapravo se često događa da platforma izda nekoliko malih verzija ili zakrpa u bilo kojem mjesecu. To je razumljivo jer WP tim neprestano popravlja vektore napada. Ipak, sva ta ažuriranja imaju problem: WP ažuriranje može pokvariti dodatak, uzrokujući prestanak rada ili pad stranice.

Naravno, morate održavati svoj CMS ažurnim, ali ograničenja verzije koja nameću dodaci mogu otežati ovaj posao. Neki programeri dodataka uvijek testiraju i ažuriraju svoje dodatke, ali ovaj mali "svijet" od premium dodaci ne predstavlja većinu. Izvan ovih premium dodataka postoji stvarni rizik da bi nadogradnja WP verzije mogla doslovno slomiti stranicu.

Naduti dodatak

Pretpostavimo da većina programera zna da je važno izgraditi lean projekte koji ne koriste višak koda. Sada, neki dodaci su u skladu s tim načelom, ali mnogi dodaci su jako napuhani jer ti dodaci pokušavaju riješiti svaki problem koji bi korisnik mogao imati. Uobičajeno je da programer otkrije da dodatak rješava jedan problem dok nudi rješenje za pedeset drugih problema koji nisu relevantni za njegovu stranicu. (O temama i "bilderima" da i ne govorimo).

Dodaci prekidaju tijek rada u WordPressu

Konačno, još jedan čest problem koji stvaraju mnogi dodaci je činjenica da dodatak može ometati korisničko iskustvo u WordPressu, nažalost to ovisi o učinku dodaci za nadutost WordPressa. Na primjer, dodatak može u potpunosti promijeniti način na koji se objava stvara i širi po web-mjestu.

To rezultira problemom s kojim se WP programeri vrlo često susreću, osjećaju se kao da moraju previše raditi oko dodatka, umjesto da samo koriste dodatak. Neizbježno, programeri preuzimaju ovaj proces zaobilaženja dodataka jer se može činiti da taj dodatak rješava problem procesa (koji neizbježno ne postoji).

Web arhitektura je evoluirala

Već smo spomenuli da WordPress postoji već neko vrijeme. Kada je napravljena, programeri su mislili da će web stranica uvijek koristiti jedan poslužitelj, uz jedan datotečni sustav. Međutim, programeri sve više koriste ono što se naziva arhitekturom mikro poslužitelja koja koristi višestruke čvorove. To čine jer je takav način rada skalabilniji i fleksibilniji. Ali korištenje WordPressa na kompliciranoj arhitekturi može stvoriti probleme, na primjer, gotovo isključivo oslanjanje na FTP za WP CMS ažuriranja.

Moderni programeri bi očito mislili da je ažuriranje koda preko FTP-a samo arhaično. Programeri obično koriste određeni tijek rada kako bi se potencijalni problemi mogli zaustaviti prije nego što kod postane operativan. To znači da se razvoj odvija lokalno, kod je pod kontrolom verzija, a taj se kod također automatski testira – sve kroz kontinuirani proces integracije. Dakle, samo učitavanje novog koda u okruženje koje izvodi kratke petlje, što znači da postoji velika vjerojatnost da bi stvari mogle poći po zlu.

Veći problem od krpanja jednostavno je pretpostavka da radimo s jednim datotečnim sustavom na jednom čvoru. Klaster web poslužitelja s više čvorova poboljšava kvarove hardvera i performanse, zbog čega se ovaj pristup sve više prihvaća. Međutim, WP ima prepreku u tome što instaliranje ažuriranja teme ili dodatka putem FTP-a znači da se samo jedan datotečni sustav može ažurirati u jednom trenutku. Dakle, s klasterom s više čvorova suočeni ste s izvođenjem ovog ažuriranja za svaki čvor.

Programeri mogu zaobići ovaj problem, ali to ostaje poteškoća koju nije lako riješiti. Osim toga, proces zahtijeva da se datotečni sustav može pisati, što zauzvrat donosi veliki sigurnosni problem bazi podataka koja je srce WordPressa.

Podaci siroče i struktura podataka općenito

U početku je struktura podataka WordPressa jednostavna. Međutim, ubrzo se pokazuje da u WP bazi podataka postoje suvišne tablice. Na primjer, zašto metapodaci moraju biti odvojeni u dvije tablice: jednu pod nazivom "wp_posts" i drugu pod nazivom "wp_postmeta"? Nije li bolje uključiti sve podatke u jednu tablicu? Isto vrijedi i za tablicu komentara, koja ima drugu pridruženu tablicu za svoje metapodatke.

Rezultat je da u cijeloj bazi podataka ostaje više podataka. Da, WP uključuje neke značajke koje pomažu smanjiti učinak izgubljenih podataka, ali funkcije ne rade kada trebate manipulirati brojem redaka od tisuća redaka. U osnovi značajke WordPressa uzrokuju vremensko ograničenje poslužitelja i dovode do curenja memorije i jednostavno nisu učinkovite.

Naravno, možete odlučiti jednostavno smanjiti izgubljene podatke izravnim pisanjem SQL upita da to učinite. Ali morate temeljito razumjeti kako su tablice povezane kako biste mogli napisati ispravne SQL upite. Stupanj odvojenosti podataka u WordPress bazi jednostavno ispada suvišan.

Što Plesk Toolkit za WordPress čini da poboljša stvari

Pleskov WordPress Toolkit jednostavan je način za postavljanje i prilagodbu WordPress instance, sve s jedne upravljačke ploče. Možete ga koristiti sve dok je instaliran na vašoj web stranici. Evo nekoliko područja u kojima WordPress Toolkit pomaže u brizi o WP-u:

Upravljanje sigurnošću

Pomoću alata možete automatski zatvoriti najočitije sigurnosne rupe. Na primjer, možete vratiti XML na RPC ping, provjeriti je li mapa "wp-content" sigurna i još mnogo toga. Skup alata prikazuje sigurnosni status vaše stranice i označava probleme s "opasnost" ili "upozorenje" što je preporuka za poboljšanje sigurnosti.

Ažuriranje WP instance

Dostupna kao značajka dodatka u Toolkitu 3.x i novijim verzijama, značajka Smart Updates omogućuje vam održavanje produkcijske stranice u radu i njezino ažuriranje u isto vrijeme, bez rizika od kvara stranice. Alat provjerava probleme koji se mogu pojaviti zbog ažuriranja i reći će vam postoji li neka vrsta rizika.

Kloniranje

Postoji mnoštvo razloga zašto biste mogli napraviti kopiju svoje WordPress stranice. Na primjer, možda imate početnu stranicu na kojoj možete testirati promjene prije nego što ih objavite. Kada budete spremni, želite kopirati sadržaj stranice.

Ili, možda imate javno mjesto i možda želite napraviti njegovu kopiju za koju ne želite da javnost ima pristup. Drugi primjer su profesionalni programeri koji imaju kopiju modela WordPress instalacije i samo je žele automatski klonirati, uključujući teme i dodatke.

Također imamo klijente koji samo žele napraviti nekoliko kopija stranice iz raznih razloga, kao što je da pokažu kako stranica može izgledati drugačije uz nekoliko izmjena.

Bez obzira na vaš razlog, alat za kloniranje u WordPress Toolkit-u olakšava kopiranje svega, uključujući datoteke stranice, bazu podataka stranice i sve WP CMS postavke.

Sinkronizacija

Iz raznih razloga možda biste trebali provjeriti podudaraju li se dvije WordPress web stranice. WP Toolkit vam omogućuje automatsku sinkronizaciju WP baze podataka i svih WP datoteka.

Ako imate probnu kopiju svog web-mjesta, dok je vaša javna kopija pokrenuta negdje drugdje, možda ćete htjeti sinkronizirati web-mjesta jer želite kopirati promjene koje ste napravili na probnom web-mjestu na web-mjesto WP live.

Slično tome, možda ćete htjeti kopirati neke podatke s produkcijske stranice u svoju probnu instancu kako biste mogli provjeriti odgovaraju li promjene napravljene na probnoj verziji s podacima uživo. Ili su promjene koje ste izvršili na svom početnom mjestu uzrokovale promjenu u tablicama vaše baze podataka, u kojem slučaju vam alat omogućuje sinkronizaciju tih promjena s bazom podataka samo ako to želite.

Još jedan slučaj upotrebe značajke sinkronizacije WP Toolkita je kada je razvojni programer ažurirao početnu stranicu na maloprodajnu verziju WordPressa i želi preslikati promjene na web stranicu uživo.

Imate mogućnost sinkronizirati cijeli WP CMS ili samo neke njegove dijelove. Dakle, možete zrcaliti svoje WP datoteke, njegovu bazu podataka ili oboje. U ponudi je dodatna granularnost u kojoj možete birati između sinkronizacije cijele baze podataka ili samo tablica ili čak tablica koje su u izvoru, ali nisu prisutne u odredištu. Također je moguće zrcaliti pojedinačne tablice.

Lov na bube u WP-u

Plesk WordPress Toolkit također omogućuje razvojnim programerima da automatski otkriju i isprave pogreške u izvoru web-mjesta tako što će omogućiti način otklanjanja pogrešaka.

Zaključak.

Nakon svega navedenog jasno je da postaje iznimno važno odabrati ne samo programera s kojim ćete surađivati ​​ili agenciju koja vas može pratiti, već prije svega hosting na kojem ćete smjestiti svoju stranicu u WordPressu. Čak i iz ovih stvari razumijemo što znači imati mračnu stranicu na profesionalnom hostingu ili ne.

WordPress nije lak "objekt" za rukovanje. Naravno, osjećate se slobodnim, mislite da vam ne treba programer ili da niste vezani uz agenciju, mislite da je divno to moći učiniti sami, ali u stvarnosti istina govori drugačije i danas sigurnost više nije sekundarna, već primarna stvar i zbog obveza i odgovornosti prema trećim stranama.