EmDash – Eklenti güvenlik sorunlarını çözen WordPress’in manevi halefi
(blog.cloudflare.com)- Cloudflare tarafından geliştirilen EmDash, WordPress’in yapısal sınırlarını aşmak için TypeScript ve sunucusuz mimari ile yeniden tasarlanmış açık kaynaklı bir CMS
- Her eklenti, izole bir sandbox ortamında çalıştırılır; böylece WordPress sitelerindeki güvenlik sorunlarının %96’sını oluşturan eklenti açıkları temelden engellenir
- Yerleşik x402 ödeme standardı ile içerik bazında isteğe bağlı ödeme (pay-per-use) desteği sunar ve yapay zeka tabanlı web trafiği çağına uygun bir gelir modeli sağlar
- Cloudflare Workers tabanlı sunucusuz yapı sayesinde istek geldiğinde otomatik olarak ölçeklenip küçülür; böylece maliyet tasarrufu ile yüksek performans birlikte elde edilir
- Yapay zeka ajan yönetimi, Passkey kimlik doğrulama, Astro tema yapısı gibi modern özellikleri entegre ederek WordPress’in ruhunu sürdürürken tamamen yeniden kurgulanmış bir CMS sunar
EmDash’e genel bakış
- EmDash, WordPress’in yapısal sınırlarını çözmek için yeniden tasarlanmış açık kaynaklı bir CMS olup tamamen TypeScript tabanlı ve sunucusuz mimariyi benimser
- WordPress’in temel işlevleriyle uyumludur, ancak mevcut kodu kullanmadığı için MIT lisansı ile dağıtılabilir
- Cloudflare Workers’ın Dynamic Worker yapısını kullanarak her eklentiyi bağımsız bir izolasyon ortamında (isolate) çalıştırır
- Astro framework tabanlı yapısıyla içerik odaklı web siteleri için optimize edilmiş performans sunar
- EmDash, GitHub üzerinden açık olarak sunulmuştur ve doğrudan Cloudflare hesabı ya da Node.js sunucusu üzerinde dağıtılabilir
- Eklenti güvenliği, pazar bağımlılığını giderme, yapay zeka tabanlı yönetim, x402 ödeme desteği gibi WordPress’in çözemediği sorunları kökten iyileştirir
WordPress’in başarıları ve sınırları
- WordPress, internetin %40’ından fazlasını çalıştırıyor ve yayıncılığın demokratikleşmesini sağlayan en önemli açık kaynak başarı örneklerinden biri
- Ancak 24 yıl sonra bugün, barındırma ortamı ve geliştirme paradigması büyük ölçüde değişti
- Başlangıçta VPS kiralamak gerekiyordu, bugün ise küresel dağıtık ağlara yalnızca JavaScript bundle yükleyerek dağıtım yapmak mümkün
- EmDash, WordPress’in ruhunu devralırken bunu modern web altyapısı ve güvenlik gereksinimlerine uygun biçimde yeniden kurguluyor
WordPress eklenti güvenlik sorununu çözmek
- WordPress sitelerindeki güvenlik sorunlarının %96’sı eklentilerden kaynaklanıyor
- Eklentiler, PHP betikleri olarak veritabanına ve dosya sistemine doğrudan erişebiliyor
- Kurulum sırasında neredeyse tüm yetkileri alıyor ve herhangi bir izolasyon ya da yetki kısıtı bulunmuyor
- EmDash, her eklentiyi Dynamic Worker tabanlı sandbox ortamında çalıştırıyor
- Eklentiler, açık bir bildirim (manifest) üzerinden yalnızca ihtiyaç duydukları capabilities izinlerini talep ediyor
- Örneğin:
read:content,email:sendgibi yalnızca gerekli izinler veriliyor - Ağ erişimi de belirtilen host’larla sınırlı tutuluyor
- Kurulumdan önce eklentinin talep ettiği izinler açıkça görülebildiği için OAuth benzeri şeffaf bir yetkilendirme yapısı sunuluyor
- Yöneticiler, izin taleplerini temel alarak kurulum politikasını otomatikleştirebiliyor
Eklenti güvenliği ve pazar yeri bağımlılığını aşmak
- WordPress.org, eklenti güvenlik sorunları nedeniyle manuel inceleme süreci işletiyor ve kuyrukta 800’den fazla öğe bulunuyor
- GPL lisans kısıtları nedeniyle kodun yeniden kullanımı ve ticarileştirilmesi sınırlı
- EmDash, iki yapısal iyileştirme ile vendor lock-in durumunu ortadan kaldırıyor
- Eklenti lisansında özgürlük: EmDash ile kod paylaşımı olmadığı için geliştiriciler istedikleri lisansı seçebiliyor
- Güvenli sandbox çalıştırma: Site, eklenti kodunu doğrudan görmek zorunda olmadan ona güvenebiliyor
- Eklentiler yalnızca belirtilen capability’leri yerine getirdiğinden güvenlik riski ayrıntılı biçimde değerlendirilebiliyor
- Bu yapı, merkezi pazar yerine bağımlılığı azaltıyor
- Güvenilir bir güvenlik modeli kurulduğunda geliştiriciler ve kullanıcılar ekosistemi daha özgür biçimde genişletebiliyor
Yerleşik x402 ödeme standardı — içerik erişimini ücretlendirme
- EmDash, x402 standardını varsayılan olarak destekleyerek HTTP 402 Payment Required yanıtı üzerinden isteğe bağlı ödeme imkanı sunuyor
- Kullanıcılar abonelik olmadan içerik başına ödeme (pay-per-use) yapabiliyor
- Site sahipleri yalnızca cüzdan adresi ve fiyat belirleyerek gelir elde edebiliyor
- Bu, yapay zeka ajanı tabanlı web trafiği çağında yeni bir iş modeli sunuyor
- Böylece tüm EmDash siteleri, yapay zeka çağına uygun yerleşik bir gelir modeline sahip oluyor
Sunucusuz tabanlı ölçeklenebilirlik ve maliyet tasarrufu
- WordPress, sunucu provizyonu gerektirdiği için boşta duran kaynak maliyeti oluşturuyor
- EmDash, Cloudflare workerd tabanlı v8 isolate mimarisini kullanıyor
- İstek geldiğinde anında instance oluşturuluyor, istek yoksa otomatik scale-to-zero gerçekleşiyor
- Yalnızca CPU kullanım süresi kadar ücretlendiriliyor
- Cloudflare for Platforms sayesinde milyonlarca instance’ın otomatik ölçeklenmesi mümkün
- Düşük maliyetli ve yüksek performanslı bu yapı, büyük ölçekli trafiği yönetmek ve ücretsiz katman sunmak açısından avantaj sağlıyor
Astro tabanlı modern tema yapısı
- EmDash temaları bir Astro projesi olarak yapılandırılıyor ve şu bileşenleri içeriyor
- Pages: İçerik render etmek için rotalar
- Layouts: Ortak HTML yapısı
- Components: Yeniden kullanılabilir UI öğeleri
- Styles: CSS veya Tailwind ayarları
- Seed dosyaları: CMS’in oluşturacağı içerik türlerini tanımlayan yapılar
- Astro, LLM eğitim verilerinde yer alan popüler framework’lerden biri olduğu için geliştirici dostu
- WordPress temalarındaki
functions.phptabanlı yapının aksine, EmDash temaları veritabanına erişemez; bu da güvenliği artırır
Yapay zeka yerel CMS — MCP, CLI, Agent Skills
- EmDash, yapay zeka ajanları tarafından doğrudan yönetilebilen bir CMS olarak tasarlanmıştır
- Tekrarlayan içerik taşıma veya alan dönüştürme işleri otomatikleştirilebilir
-
Agent Skills
- EmDash instance’ları, eklenti yapısı, hook’lar ve tema taşıma yöntemleri gibi bilgileri yapay zekaya sunan Agent Skills özelliğini yerleşik olarak içerir
- Böylece yapay zeka EmDash kod tabanını anlayıp otomatik özelleştirme yapabilir
-
EmDash CLI
- CLI üzerinden içerik arama, medya yükleme, şema oluşturma gibi yönetim işleri yapılabilir
- Hem yerel hem de uzak instance’lar kontrol edilebilir
-
Yerleşik MCP sunucusu
- Her instance kendi Model Context Protocol sunucusunu sağlar
- Yönetici arayüzünde yapılabilen her işlem uzaktan da gerçekleştirilebilir
Passkey tabanlı kimlik doğrulama ve rol yönetimi
- EmDash, varsayılan olarak Passkey kimlik doğrulamayı kullanır
- Parola sızıntılarını ve brute-force saldırılarını önler
- Varsayılan olarak rol tabanlı erişim kontrolü (RBAC) desteği sunar
- Yönetici, editör, yazar, katkıda bulunan gibi rollere göre yetkiler ayrılır
- Kimlik doğrulama eklenti yöntemiyle genişletilebilir ve SSO ile IdP metadata entegrasyonunu destekler
WordPress sitelerini taşıma
- Mevcut WordPress siteleri, WXR dosyası dışa aktarma veya EmDash Exporter eklentisi ile taşınabilir
- Exporter eklentisi, WordPress Application Password ile korunan özel bir endpoint oluşturur
- İçeriği ve medyayı otomatik olarak EmDash kütüphanesine taşır
- EmDash, şema tabanlı içerik yapısını destekler
- WordPress’teki Custom Post Type yapıları, EmDash içinde bağımsız koleksiyonlara dönüştürülür
- Block Kit Agent Skill ile özel bloklar yapay zeka kullanılarak oluşturulabilir
Deneme ve katkı
- EmDash şu anda v0.1.0 preview sürümü olarak GitHub deposundan indirilebilir
- EmDash Playground üzerinden yönetici arayüzü doğrudan denenebilir
- Yerel kurulum komutu:
npm create emdash@latest - Cloudflare dashboard üzerinden de dağıtım yapılabilir
- WordPress topluluğunun, barındırma platformlarının ve eklenti/tema geliştiricilerinin geri bildirimleri ve katkıları memnuniyetle karşılanıyor
6 yorum
Ben de kişisel blogumda WordPress kullanırken o güvenlik sorunu yüzünden bırakıp statik yapıya geçen biriyim.
Kişisel blogu bir süre kendi haline bırakmıştım ama gerçekten tuhaf spam’ler sızıp blogu tam bir spam tarlasına çevirmişler. Etiketleri kullanarak bende yerelde olmayan sayfaları Google’a kaydettiren garip bir yöntem kullanıyorlardı. Temizlemek için hâlâ uğraşıyorum T_T
Ben de webmaster araçlarında garip bir URL yakalanınca şaşırdığımı hatırlıyorum.
tagkullanarak yerelde olmayan bir sayfayı Google'a kaydetmenin tuhaf bir yöntemi derken tam olarak nasıl bir yöntemden bahsediliyor??Bunu engellemenin bir yolu var mı?
Arama sonuçları URL’lerini spam içerikli ifadelerle aratıp başka blogların gönderilerine geri bağlantı olarak kaydeden türden spam de var;
Sonuçta hangisi olursa olsun, yine elle silmek gerekiyor...
Genelde dosya yükleme ile ilgili zafiyeti olan eklenti/tema gibi şeyler kullanılarak sızılıyor.
Bu şekilde içeri girildiğinde, asıl blog sahibi fark etmeden tag/category gibi yerlere içerik yerleştiriyorlar.
Aslında blog sayfasında hiç görünmediği için fark edilmiyor, ama bu URL’yi yalnızca Google botuna görünecek şekilde render etme yöntemini kullanıyorlar. (BabaYaga gibi şeyler buna örnek.)
Bir kez böyle sızıldı mı, pratikte o adrese gelen tüm trafiği 410 Gone’a yönlendirmek dışında bir yol yok gibi. Sunucuda gereksiz adreslerin hepsini 410 olarak görünecek şekilde ayarlayıp, belirli giriş kalıplarını Search Console’da 6 ay boyunca manuel olarak silinmesini istemek gerekiyor. Mesela
/tagile başlayanların hepsini sildirmek gibi.Ben bir aydır silme talebi gönderiyorum ama hâlâ hepsi silinmedi. Google indekslemesinin düzgün çalışması gerekiyor ama çok uzun sürüyor.
Anladım. Bildirdiğiniz için teşekkürler. Görünüşe göre çeşitli açılardan dikkat etmem gerekecek.
Hacker News görüşleri
10 yıldan uzun süredir WordPress ile çalışıyorum ve bu projenin iki şeyi gerçekten doğru yaptığını düşünüyorum: TypeScript ve Worker eklentileri
Son zamanlarda WP’nin güvenlik sorunları üzerine çok düşündüm; kötü niyetli eklentiler veritabanına ya da ortam değişkenlerine erişebilir veya XSS’e yol açabilir. Ama iyi tasarlanmış bir eklenti sistemi bunu hafifletebilir
Ben de kişisel olarak HotsauceCMS geliştiriyorum. NodeJS ya da Deno Worker eklentilerini isteğe bağlı kullanıyor; birinci taraf eklentiler için hızlı in-process çalıştırma, üçüncü taraflar için ise worker ile yalıtılmış çalıştırma sağlıyor
Yalnızca 4 bağımlılığı var ve transitif bağımlılık sayısı 0; çünkü Dependabot uyarılarından ve npm tedarik zinciri saldırılarından bıktım
Drizzle tabanlı, şema öncelikli bir yapısı var; veritabanı yapısını tamamen kontrol edebiliyor ve dosya yükleme gibi özellikleri şema ipuçlarıyla tanımlıyor
Veritabanından bağımsız olduğu için Postgres, MySQL, SQLite ve Drizzle’ın desteklediği tüm VT’lerde çalışıyor
Frontend tarafı serbestçe seçilebiliyor; ben şahsen React’siz JSX’i tercih ediyorum
Geri bildirimlere açığım. Bir şeyi gözden kaçırıp kaçırmadığımı, yönün doğru olup olmadığını merak ediyorum. EmDash’in gelecekte nasıl gelişeceğini de görmek istiyorum
EmDash’in WordPress’in manevi halefi olduğu söyleniyor ama bence CMS’lerin gitmesi gereken yön bunun tam tersi
Aslında daha da sadeleşip statik dosya tabanlı web sitelerine dönmeliyiz. Cache’lemek kolay, hızlı ve yönetmesi basit
Tabii Cloudflare açısından bakınca, kendi Workers ürününü satmak için böyle bir yapı seçmiş gibi görünüyor. Temeldeki güvenlik sorunlarını gerçekten çözüp çözmediği ise hâlâ soru işareti
Bence Cloudflare meseleye yanlış yönden yaklaşıyor
WordPress’in başarılı olmasının sebebi kolay kurulum ve ağ etkisiydi. Güvenlikten bile önce, zaten WP’ye alışkın çok sayıda geliştirici var
EmDash başarılı olacaksa Wix ya da Squarespace’ten daha kolay, daha hızlı ve daha esnek olmak zorunda. Yoksa ağ etkisi yaratması zor
Bir WordPress geliştiricisi olarak en büyük acım eklenti mimarisi oldu.
WP, eklentileri görsellerle aynı
wp-contentklasörüne koyuyor ve bu da CI/CD’yi kâbusa çeviriyor. EmDash’te eklentiler TS modülü olduğu için çok daha temizCloudflare’in x402 ödeme standardı fikri ilginç
Ajanların içeriğe erişim hakkı almak için otomatik olarak küçük ödemeler göndermesi üzerine kurulu; biraz ürkütücü ama geleceğe dönük
Şaka yollu söylemek gerekirse, her ziyarette 10 sent isteyen bir HTTP 402 honeypot yapılırsa eski “1 piksel 1 dolar” fikrinin geri dönüşü olabilir
WordPress’in değeri kodunda değil, ekosistemi ve destek yapısında
Kod kalitesi çok iyi olmayabilir ama her SaaS, WP için bir bağlayıcı sunuyor.
EmDash başarılı olacaksa, geliştirici olmayan biri bile Fiverr’da kolayca özelleştirme işi verebilmeli. Bu teknoloji değil, iş gücü piyasası meselesi
Bunun Cloudflare yapımı bir WordPress halefi olması ilgi çekici ama Dynamic Workers tabanlı eklenti izolasyonu yalnızca Cloudflare runtime’ında çalışıyor
Diğer hostlarda sadece sıradan bir TS CMS olarak kalıyor; yani mimariye bağımlılık sorun yaratıyor
Hâlâ neden JavaScript ile yapay zeka projeleri geliştirildiğini merak ediyorum
Artık Go gibi derlenen dillerle de hızla uygulama geliştirilebiliyor. Daha küçük, daha hızlı ve dağıtımı daha kolay
JS yorumlanan bir dil olduğu için yavaş ve karmaşık. Eskiden anında çalıştırma avantajdı ama bugün derleme de hızlı
EmDash’in WordPress kodunu kullanmadığı için MIT lisansı ile dağıtılması ilginç
Ama bu bana yakın zamanda çıkan bir Cleanroom as a Service olan Malus projesini hatırlatıyor. Zamanlamaları tuhaf biçimde çakışıyor