WordPress'in Kritik Yönleri: Bir Geliştiricinin Bakış Açısı

WordPress'in Kritik Yönleri: Bir Geliştiricinin Bakış Açısı

Giderek daha fazla geliştirici, platformu beğenmeseler bile WordPress gibi bir CMS kullanmaya başlıyor.

Yetenekli geliştiriciler, özellikle programlama konusunda gerçekten iyi olan bir geliştiriciyseniz, genellikle özel çözümler kullanmayı tercih ederler. Özel bir çözümle, çok iyi çalışan çok zarif uygulamalar oluşturabilirsiniz. Bununla birlikte, geliştiriciler, platformdan kesinlikle hoşlanmasalar bile WordPress gibi bir CMS kullanıyorlar.

Bu makale, bu geliştiricilere yöneliktir ve WordPress (WP) ile çalışırken karşılaşılan zorlukların çoğuna değinir. Bu zorlukların ne olduğunu açıklayacağız ve ayrıca bir öneride bulunacağız: WP için gerçekten de dünyanın en sevilen CMS'sinin (WordPress) bazı önemli kritik noktalarını hesaba katmaya yardımcı olan bir araç seti sağlayan Plesk'in yardımı.

Geliştiriciler neden WordPress kullanıyor?

Hiç şüpheniz olmasın, WordPress çok iyi sebeplerden dolayı piyasadaki en popüler CMS'dir. Bu bölümde, gerçekten kendi kodlarını yazabilen deneyimli geliştiriciler arasında bile CMS'nin neden bu kadar popüler olduğunu açıklıyoruz.

İlk olarak, WordPress'in kurulumu çok kolaydır. Tek ihtiyacınız olan standart LAMP/LEMP ortamı – Linux, Apache/Nginx, PHP ve DBMS olarak MySQL/MariaDB. Elinizde varsa, WordPress'i yüklemeye başlayabilirsiniz.

Özelleştirme bir o kadar kolaydır çünkü WP CMS, ön uç görünümünü ve hissini özelleştirmek için temalar ve işlevsellik ekleyen eklentiler dahil olmak üzere çok çeşitli eklentilerle birlikte gelir. Kendi temanızı oluşturmanız da mümkündür ve deneyimli geliştiriciler de kendi eklentilerini yapabilir, ancak bu süreç daha karmaşıktır.

Belki de WordPress'in popülaritesinin en büyük nedeni, teknik bilgisi olmayan kullanıcılar tarafından erişilebilir olmasıdır. WP yüklendikten sonra iyi çalışması için kodlama deneyimi veya yazılım anlayışı gerektirmez, acemi kullanıcılar işten hemen sonra bir web sitesi yayınlayabilir ve bir WordPress örneği kurabilir.

WordPress ile ilgili sorun tam olarak nedir?

Dünyanın en popüler CMS'sinin dikkate alınması gereken birçok sorunu var. WordPress sorunları hakkında yaygara koparmak gibi bir niyetimiz yok, ancak aşağıdakiler samimi bir tartışma ve bu inanılmaz derecede popüler CMS'nin arkasındaki geliştirme ekibinin aşağıdaki noktaları olumlu bir eleştiri olarak almasını umuyoruz. İşte bu nedenle WordPress'in geliştiriciler için can sıkıcı olduğunu düşünüyoruz:

Geniş ölçüde yetenekli, ancak asla mükemmel değil

WordPress'in başlangıcı basitti. WP, blog yazmak ve yayınlamak isteyenler için bir platform olarak doğdu. CMS yıllar içinde tamamen değişti ve artık mütevazi başlangıçlarına hiç benzemiyor. Bazı insanlar bunu tüm bir siteyi yönetmek için temel bir sistem, çevrimiçi mağazalar için bir platform ve hatta statik siteler oluşturmanın bir yolu olarak kullanıyor (çılgınca, ama bunu yıllar içinde de gördük)

CMS'nin ne kadar uyarlanabilir olduğunun altını çiziyor ve biz de bu ifadeye katılıyoruz, ancak bu kadar esnek olmanın sorunu, herhangi bir rolde mükemmel olmanın zor hale gelmesidir. Bunu gerçekleştirmenin bir yolu, eklenti merceğinden bakmaktır: mevcut binlerce WordPress eklentisi, insanların WordPress'i olmadığı bir şey olmaya veya daha da kötüsü olmaya, yapamayacağı bir şeyi yapmaya nasıl zorlamaya çalıştıklarını gösterir. oluyor, acıyor. Bu nedenle, WordPress'i kullandığımızda ve sık sık ve isteyerek kullandığımızda, kesinlikle gerekli olmayan eklentileri asla yüklemeyiz. Bu noktada kendimiz yapmayı tercih ediyoruz.

Açıkçası, WordPress bu "kendi kendine yapılan" yaklaşım için yapılmıştır ve şüphesiz esnekliğin birçok avantajı vardır. Ancak belirli bir göreve güçlü bir şekilde odaklanmadan, CMS net bir çözüm sunmak için çok mücadele eder. Herkes için her şey olmaya odaklanma, büyük sorunlara neden oluyor. Bununla birlikte, şunu belirtmeliyiz: WordPress, bloglar ve karmaşık olmayan web siteleri ve e-ticaret siteleri oluşturmak için bir platform olarak hala iyi çalışıyor.

Hack'ler ve Çatlaklar: WordPress açık bir kapı olabilir

Kısacası, WordPress günün her saati saldırıya uğruyor ve bu, geliştirici dünyasından duyduğumuz en büyük şikayet. İnkar edilemez, CMS güvenlik açıklarıyla doludur ve asla bitmez. Kısa bir battaniye gibi: bir tarafını düzeltiyorsunuz ve diğer tarafı açılıyor. Saldırıların sayısı kısmen WordPress'in popülaritesinden ve aynı zamanda WordPress'in ne kadar açık kaynaklı olmasından kaynaklanmaktadır.

CMS'nin açık kaynak kodunu herkes görüntüleyebildiğinden, bu, bilgisayar korsanlarının koddaki zayıflıkları bulmasına olanak tanır. Açık kaynak kodunun kötü bir yaklaşım olduğunu söylemek istemiyoruz, ancak WordPress CMS'nin açık kaynak doğasının sonsuz güvenlik sorunlarına katkıda bulunduğunu düşünüyoruz.

Analizler, WordPress sitelerinin internetin dörtte birinden fazlasını oluşturduğunu gösteriyor. WordPress ekibi bunu bilir ve CMS'nin güvenli olduğundan emin olmak için ellerinden gelen her şeyi yapmaya çalışır, ancak günümüzde geliştirme döngülerinin çok hızlı olması nedeniyle, karmaşık bir uygulamanın tamamen güvenliğini sağlamak zor olabilir. Ve güvenlik çabaları başarısız olduğunda, milyonlarca web sitesi risk altında olabilir.

WordPress güvenlik sorunlarına yönelik, elbette bariz olan “WordPress örneğinizi güncelleyin” dışında bariz bir çözümümüz yok. O zaman bile, WordPress sürüm döngüsü benzersiz ve sonsuz sorunları beraberinde getirir.

Pek çok insan, WordPress güvenliğiyle ilgilenmenin basit olduğunu söylüyor ve bu büyük ölçüde doğru, ancak soru şu ki, WordPress'in güvenli olduğundan emin olmak için site sahiplerinden neden bir yapılacaklar listesi yapmak istensin? WordPress'in bu güvenlik parçası neden kutudan çıkmadı?

  • Birisinin yürütülebilir bir dosyayı WordPress'e yüklemesi kolaydır ve bu seçenek varsayılan olarak sınırlandırılmalıdır. Kötü amaçlı kod içeren bir dosyayı bir PHP betiğine yüklemek yalnızca biraz akıllı bir kişi alır ve sitenizin güvenliği ihlal edilir.
  • Şu anda, seçenekler dosya sisteminde yapılandırılabilir. Bunun yerine, WordPress bunu çıkarmalı ve dosya sisteminin "salt okunur" olduğu varsayımını yapmalıdır. WordPress'in özü bunu yaparken, eklentiler bu davranış modelini izlemez. Aktif olarak üretimdeyken yapılandırma dosyasını değiştiren bir eklenti ile karşılaşırsanız, onu kullanmayı bırakın. Bunu yapmak, yazılabilir bir dosya sistemini ve dolayısıyla kötü amaçlı değişiklikler yapmanın kolay bir yolunu gösterir. Bir çözüm, wp-config.php dosyasını sistemin kökünden kaldırmaktır (WordPress yine de çalışır), ancak bu tam bir güvenlik garantisi değildir ve her durumda bilinçsiz geliştiriciler tarafından yazılan birçok eklentinin doğru çalışmasını engeller. .
  • Varsayılan olarak, WordPress, kullanıcıların istedikleri kadar oturum açma denemesi yapmasına izin verir. Bu, bilgisayar korsanlarının oturum açma başarılı olana kadar rastgele parolalar denemeye devam ettiği bir kaba kuvvet saldırısına kapı açar. WordPress CMS, kurulum sırasında sınırsız oturum açma denemelerini devre dışı bırakmalıdır.

Bu kapsamlı bir liste değil, sadece birkaç nokta. Açıkçası, büyük bir yazılım çözümü, özellikle açık kaynaklı bir çözüm, saldırılara karşı tamamen dayanıklı olamaz. Ancak asıl amacımız, ciddi geliştiricilerin WordPress'i tam olarak çok savunmasız olduğu için kullanmak konusunda isteksiz olduklarıdır. Yetenekli geliştiriciler, gelecekteki bilinmeyen güvenlik açıkları hakkında endişelenmeden, ihtiyaçlarını zarif bir şekilde karşılayan ve titizlikle korunabilen yepyeni bir uygulama oluşturmayı tercih eder.

Veya, PLESK ayarlarından en iyi şekilde yararlanarak ve WordPress'i "önerilmeyen" veya daha kötüsü "ücretsiz" veya daha kötüsü ancak kötü yazılmış eklentilerle yüklemeyerek (bu konuda yargıda bulunabilmek için bu alanda deneyime ihtiyacınız vardır) yine de yapabilirsiniz WordPress'i güvenlik açısından da mükemmel bir platform haline getirin. Ama artık "kendin yap" yönetimi değil, uzman bir ele ihtiyaç var.

Bir sorun kaynağı olarak eklentiler

İyi bir geliştirici bir eklentiye ilk takıldığında başvurmaz. Bunun yerine, iyi geliştiriciler basit ve zarif bir çözüm oluşturmaya çalışır. Aksine her zaman internette aratarak eklentilere güvenmek veya Topluluk tarafından önerilenlere güvenmek çok yanlış bir düşüncedir.

Nihayetinde bir eklenti, WordPress'e belirli işlevler eklemeyi kolaylaştırır, bu da WP için geniş bir eklenti yelpazesini CMS'nin gücü haline getirir - ancak bu aynı zamanda bir risktir. Eklentiler işleri daha kolay ve hızlı hale getirebilse de, eklentiler aynı zamanda birçok güvenlik riski taşır ve aynı zamanda sizi hangi WP sürümünü kullanacağınızı seçmeye zorlar ve aynı zamanda WordPress örneğinizi inanılmayacak kadar şişirirler. çevrimiçi varlığınızı, sitenin açılma hızını ve dolayısıyla erişilebilirliği ve dolayısıyla arama motorlarında doğru indekslemeyi sinirlendirerek veya krize sokarak ölçün.

Eklentiler ve güvenlik

İlk olarak, eklentilerin oluşturduğu güvenlik sorunlarına bakalım. Bir rapor, bilinen WordPress güvenlik sorunlarının yarısından fazlasının eklentilerden kaynaklandığını öne sürüyor. Geliştiriciler, bir eklenti üreticisinin takip ettiği tüm iyi uygulamalara tabidir - ki bu çok iyi olmayabilir. Bu nedenle, bir geliştirici olarak, bir eklentiyi kullanmadan önce iyice test etmelisiniz. Bu inceleme süreci, bir dereceye kadar eklentilerle kazandığınız zamanı ortadan kaldırabilir, bu noktada siteye eklemek için gerekli özelliği sıfırdan geliştirmeyi düşünebilirsiniz.

WP sürümlerinde sınırlamalar

"Sürüm kısıtlaması" olarak bilinen eklentiler, WP CMS'nin hangi sürümünü çalıştırabileceğinizi sınırlayabilir. Şimdi, WordPress yayın döngüsü konusunda çok agresif, bu nedenle düzenli olarak yeni bir güncelleme yayınlıyor ve aslında platformun herhangi bir ayda birkaç küçük sürüm veya yama yayınladığı oluyor. WP ekibi sürekli olarak saldırı vektörlerini düzelttiği için bu anlaşılabilir bir durumdur. Yine de tüm bu güncellemelerin bir sorunu var: WP güncellemesi bir eklentiyi bozarak sitenizin çalışmamasına veya çökmesine neden olabilir.

Elbette CMS'nizi güncel tutmanız gerekiyor, ancak eklentilerin getirdiği sürüm kısıtlamaları bu işi zorlaştırabilir. Bazı eklenti geliştiricileri, eklentilerini her zaman test ediyor ve güncelliyor, ancak bu küçük "dünya" premium eklenti çoğunluğu temsil etmez. Bu premium eklentilerin dışında, bir WP sürüm yükseltmesinin siteyi tam anlamıyla bozması gibi gerçek bir risk vardır.

Eklenti şişkinliği

Çoğu geliştiricinin, fazla kod kullanmayan yalın projeler oluşturmanın önemli olduğunu bildiğini varsayalım. Şimdi, bazı eklentiler bu prensibe uygundur, ancak birçok eklenti çok şişkindir çünkü bu eklentiler bir kullanıcının sahip olabileceği her sorunu çözmeye çalışır. Bir geliştiricinin, bir eklentinin bir sorunu çözerken, kendi sitesiyle ilgili olmayan diğer elli soruna çözüm sunduğunu bulması yaygın bir durumdur. (Temalardan ve "inşaatçılardan" bahsetmiyorum bile).

Eklentiler, WordPress iş akışınızı kesintiye uğratır

Son olarak, birçok eklentinin yarattığı başka bir yaygın sorun, bir eklentinin WordPress'teki kullanıcı deneyimini engelleyebilmesidir, bu ne yazık ki etkiye bağlıdır. şişirme eklentileri WordPress'in. Örneğin, bir eklenti, bir gönderinin site genelinde nasıl oluşturulduğunu ve dağıtıldığını tamamen değiştirebilir.

Bu, WP geliştiricilerinin çok sık karşılaştıkları bir sorunla sonuçlanır, sadece eklentiyi kullanmak yerine bir eklentiyi "etrafında" çok fazla çalışmak zorunda olduklarını hissederler. Kaçınılmaz olarak, geliştiriciler bu eklentileri atlama sürecini üstlenirler çünkü bu eklenti bir süreç problemini çözüyor gibi görünebilir (ki bu kaçınılmaz olarak orada değildir).

Web mimarisi gelişti

WordPress'in bir süredir ortalıkta olduğundan bahsetmiştik. Geliştiriciler, oluşturulduğunda bir web sitesinin her zaman tek bir dosya sisteminin yanı sıra tek bir sunucuyu kullanacağını varsaydı. Ancak geliştiriciler, birden çok düğümden yararlanan mikro sunucu mimarisi adı verilen mimariyi giderek daha fazla kullanıyor. Bunu yapıyorlar çünkü bu çalışma şekli daha ölçeklenebilir ve esnek. Ancak WordPress'i karmaşık bir mimaride kullanmak, örneğin WP CMS güncellemeleri için FTP'nin neredeyse tamamen kullanılması gibi sorunlara neden olabilir.

Modern geliştiriciler, FTP aracılığıyla kod güncellemenin yalnızca arkaik olduğunu düşünürdü. Geliştiriciler genellikle belirli bir iş akışı kullanır, böylece olası sorunlar kod çalışır hale gelmeden önce durdurulabilir. Bu, geliştirmenin yerel olarak yapıldığı, kodun sürüm kontrollü olduğu ve bu kodun da otomatik olarak test edildiği anlamına gelir - tümü sürekli bir entegrasyon süreci aracılığıyla. Yani, kısa döngüler çalıştıran bir ortama yeni kod yüklemek, işlerin ters gitme olasılığının yüksek olduğu anlamına gelir.

Düzeltme eki uygulama sorunundan daha büyük olan, tek bir düğümde tek bir dosya sistemiyle çalıştığımız varsayımıdır. Çok düğümlü bir web sunucusu kümesi, hem donanım arızalarını hem de performansı iyileştirir, bu nedenle bu yaklaşım giderek daha fazla benimsenmektedir. Bununla birlikte, FTP aracılığıyla bir tema veya eklenti güncellemesi yüklemenin, aynı anda yalnızca bir dosya sisteminin güncellenebileceği anlamına gelmesi nedeniyle WP'nin bir engeli vardır. Dolayısıyla, çok düğümlü bir kümeyle, her düğüm için bu güncellemeyi yapmakla karşı karşıya kalırsınız.

Geliştiriciler bu sorunu çözebilir, ancak bu, kolayca çözülemeyen bir zorluk olmaya devam ediyor. Ek olarak, süreç, dosya sisteminin yazılabilir olmasını gerektirir, bu da WordPress'in atan kalbi olan Veritabanına büyük bir güvenlik endişesi getirir.

Sahipsiz veriler ve genel olarak veri yapısı

İlk başta, WordPress veri yapısı basittir. Ancak kısa süre sonra WP veritabanında gereksiz tabloların olduğu ortaya çıkıyor. Örneğin, meta verilerin neden iki tabloya ayrılması gerekiyor: biri "wp_posts" ve diğeri "wp_postmeta" olarak adlandırılıyor? Tüm verileri tek bir tabloya dahil etmek daha iyi değil mi? Aynı şey, meta verileri için ilişkili ikinci bir tabloya sahip olan yorumlar tablosu için de geçerlidir.

Sonuç, veritabanı boyunca fazladan veri kalmasıdır. Evet, WP, sahipsiz verilerin etkisini azaltmaya yardımcı olan bazı özellikler içerir, ancak binlerce satırlık bir satır sayısını değiştirmeniz gerektiğinde işlevler başarısız olur. Temel olarak WordPress özellikleri, sunucu zaman aşımlarına neden olur ve bellek sızıntılarına yol açar ve etkili değildir.

Elbette, bunu yapmak için doğrudan SQL sorguları yazarak artık verileri basitçe azaltmayı seçebilirsiniz. Ancak, doğru SQL sorgularını yazabilmeniz için tabloların nasıl bağlandığını tam olarak anlamanız gerekir. WordPress veritabanındaki veri ayırma derecesinin gereksiz olduğu ortaya çıkıyor.

Plesk Toolkit for WordPress, işleri daha iyi hale getirmek için neler yapar?

Plesk'in WordPress Toolkit'i, tek bir kontrol panelinden bir WordPress örneğini kurmanın ve özelleştirmenin kolay bir yoludur. Web sitenizde yüklü olduğu sürece kullanabilirsiniz. İşte WordPress Toolkit'in WP ile ilgilenmeye yardımcı olduğu birkaç alan:

Güvenlik Yönetimi

Araç seti ile en belirgin güvenlik açıklarını otomatik olarak kapatabilirsiniz. Örneğin, XML'i RPC geri ping'e çevirebilir, "wp-content" klasörünün güvenli olduğundan emin olabilir ve çok daha fazlasını yapabilirsiniz. Araç seti, sitenizin güvenlik durumunu görüntüler ve sorunları, güvenliği artırmak için bir öneri olan "tehlike" veya "uyarı" ile işaretler.

WP örneğinizi güncelleme

Toolkit 3.x ve sonrasında bir eklenti özelliği olarak sunulan Akıllı Güncellemeler özelliği, siteyi bozma riski olmadan bir üretim sitesini çalışır durumda tutmanıza ve aynı anda siteyi güncellemenize olanak tanır. Araç, güncelleme nedeniyle oluşabilecek sorunları kontrol eder ve herhangi bir risk olup olmadığını size söyler.

klonlama

WordPress sitenizin bir kopyasını almak isteyebileceğiniz tonlarca neden var. Örneğin, canlı yayına geçmeden önce değişiklikleri test edebileceğiniz bir hazırlık siteniz olabilir. Hazır olduğunuzda, site içeriğini kopyalamak istiyorsunuz.

Ya da, herkese açık bir siteniz olabilir ve herkesin erişmesini istemediğiniz bir kopyasını oluşturmak isteyebilirsiniz. Başka bir örnek, bir WordPress kurulumunun model kopyasına sahip olan ve onu temalar ve eklentiler dahil olmak üzere otomatik olarak klonlamak isteyen profesyonel geliştiricilerdir.

Ayrıca, bir sitenin birkaç değişiklikle nasıl farklı görünebileceğini göstermek gibi çeşitli nedenlerle bir sitenin birkaç kopyasını çıkarmak isteyen müşterilerimiz de var.

Nedeniniz ne olursa olsun, WordPress Toolkit'teki klonlama aracı, site dosyaları, site veritabanı ve tüm WP CMS ayarları dahil her şeyi kopyalamayı kolaylaştırır.

senkronizasyon

Çeşitli nedenlerle, iki WordPress web sitesinin eşleştiğinden emin olmak isteyebilirsiniz. WP Toolkit, hem WP veritabanını hem de tüm WP dosyalarını otomatik olarak senkronize etmenizi sağlar.

Sitenizin bir hazırlama kopyasına sahipseniz, genel kopyanız başka bir yerde çalışırken, hazırlama sitesinde yaptığınız değişiklikleri WP canlı sitesine kopyalamak istediğiniz için siteleri senkronize etmek isteyebilirsiniz.

Benzer şekilde, hazırlama sürümünde yapılan değişikliklerin canlı verilerle uyumlu olup olmadığını kontrol edebilmek için üretim sahasındaki bazı verileri hazırlama kurulumunuza kopyalamak isteyebilirsiniz. Veya hazırlama sitenizde yaptığınız değişiklikler, veritabanı tablolarınızda bir değişikliğe neden oldu, bu durumda araç seti, isterseniz bu değişiklikleri yalnızca veritabanınızla senkronize etmenize izin verir.

WP Toolkit'in Eşitleme özelliğinin başka bir kullanım durumu, bir geliştiricinin bir hazırlık sitesini WordPress'in perakende sürümüne güncellediği ve canlı bir sitedeki değişiklikleri yansıtmak istediği durumdur.

WP CMS'nin tamamını veya yalnızca bazı kısımlarını senkronize etme seçeneğiniz vardır. Böylece, WP'nizin dosyalarını, veritabanını veya her ikisini de yansıtabilirsiniz. Tüm veritabanını veya yalnızca tabloları veya hatta kaynakta bulunan ancak hedefte bulunmayan tabloları senkronize etmek arasında seçim yapabileceğiniz için daha fazla ayrıntı düzeyi vardır. Bireysel tabloları yansıtmak da mümkündür.

WP'de hata arama

Plesk WordPress Toolkit, geliştiricilerin hata ayıklama modunu etkinleştirerek web sitesi kaynağındaki hataları otomatik olarak algılamasına ve düzeltmesine de olanak tanır.

Sonuç.

Yukarıdakilerin hepsinden sonra, yalnızca birlikte çalışacak geliştiriciyi veya sizi takip edebilecek ajansı seçmenin değil, her şeyden önce sitenizi WordPress'te barındıracağınız barındırmayı seçmenin son derece önemli hale geldiği açıktır. Hatta bu şeylerden bile profesyonel bir hosting üzerinde karanlık bir siteye sahip olmanın ne demek olduğunu anlıyoruz.

WordPress, kullanımı kolay bir "nesne" değildir. Elbette kendinizi özgür hissediyorsunuz, bir geliştiriciye ihtiyacınız olmadığını veya bir ajansa bağlı olmadığınızı düşünüyorsunuz, bunu kendi başınıza yapabilmenin harika olduğunu düşünüyorsunuz ama gerçekte, gerçek aksini söylüyor ve bugün güvenlik bir tema. artık ikincil değil, üçüncü taraflara karşı yükümlülükler ve sorumluluklar nedeniyle de birincildir.