"Kaynak kodu dahil" ifadesi bir ürün sayfasında tek başına hiçbir şey garanti etmez. Kodu teslim alıp yine de tek satırını değiştiremediğiniz, sunucu taşıyamadığınız, satıcı olmadan güncelleme alamadığınız kurulumlar sahada yaygın. Bu yazı, o kilidin nerelerden geldiğini ve sözleşme aşamasında nasıl kırılacağını anlatıyor.
Kod elinizde olsa bile sizi durduran üç mekanizma
Şifrelenmiş (encode edilmiş) dosyalar
PHP dosyaları ionCube veya benzeri bir araçla şifrelendiğinde okunabilir kod değil, sunucuda özel bir yükleyiciyle çalışan derlenmiş bir paket alırsınız. Sonuçları somut: hosting firmanız o yükleyiciyi desteklemiyorsa site açılmaz, PHP sürümü yükseldiğinde uyumlu yeni bir derleme beklemek zorunda kalırsınız, bir hatayı kendi geliştiricinize inceletemezsiniz. Kritik dosyaların (ödeme, lisans, çekirdek) şifreli olup olmadığını satın almadan önce sorun; "sadece birkaç dosya korumalı" cevabı, genellikle en önemli birkaç dosya demektir.
Uzaktan lisans doğrulaması
Bazı scriptler her açılışta ya da belirli aralıklarla satıcının sunucusuna bağlanıp lisansı sorar. O sunucu kapandığında, alan adı yenilenmediğinde veya sizinle satıcı arasında bir anlaşmazlık çıktığında siteniz kendi sunucunuzda dururken çalışmaz hâle gelir. Test yöntemi basittir: demo kurulumda dışarıya çıkış engellendiğinde site açılmaya devam ediyor mu? Cevabı satıcıdan yazılı isteyin.
Devredilemeyen haklar
Lisans çoğu zaman "kullanım hakkı" verir, mülkiyet vermez. Bu kendi başına kötü değildir; kötü olan, şirketinizi devrettiğinizde, ikinci markaya geçtiğinizde veya ajans değiştirdiğinizde lisansın taşınamaması. Sözleşmede devir, alan adı değişikliği ve alt yüklenici çalıştırma maddelerini arayın.
Kilitlenme riski nerelerden büyür?
- Veri dışa aktarımı yoksa: ürün, müşteri, sipariş ve içerik verisini CSV veya SQL olarak alamıyorsanız verinizi rehin vermişsiniz demektir.
- Şema belgelenmemişse: yüzlerce tablodan oluşan, tek satır açıklaması olmayan bir veritabanı, başka bir geliştirici için sıfırdan yazmakla eşdeğer maliyet çıkarır.
- Servisler satıcıya bağlıysa: e-posta gönderimi, SMS, harita, arama ya da yapay zekâ özellikleri yalnızca satıcının aracı sunucusundan geçiyorsa, ilişki bittiğinde o özellikler de biter.
- Tema motoru kapalıysa: tasarımı yalnızca satıcının panelinden değiştirebiliyorsanız, küçük bir görsel talep bile ücretli iş emrine dönüşür.
- Güncelleme yolu tek yönlüyse: her güncelleme özelleştirmelerinizin üzerine yazıyorsa, ya güncellemeden vazgeçersiniz ya da her seferinde yeniden ödersiniz. İkisi de pahalıdır.
Lisans tiplerini karıştırmayın
| Model | Koda erişim | Tipik risk |
|---|---|---|
| Tek alan adı lisansı | Genelde açık | İkinci kurulum ve taşıma ek ücretli |
| Geliştirici / sınırsız lisans | Açık | Yüksek ilk maliyet, destek kapsamı dar |
| Şifreli kod + yıllık yenileme | Kapalı | Yenilemezseniz güncelleme ve bazen çalışma durur |
| Kiralık kurulum (satıcı sunucusunda) | Yok | Veri ve alan adı satıcının kontrolünde |
| Sipariş usulü özel yazılım | Tam devir mümkün | Devir sözleşmede yazmazsa hak satıcıda kalır |
Sözleşmeye yazdırmanız gereken sekiz madde
- Tüm PHP, JavaScript, CSS ve şablon dosyalarının şifrelenmemiş teslim edileceği.
- Yazılımın, dış bir lisans sunucusuna bağlanmadan çalışabileceği; internet erişimi kesilse dahi sitenin ayakta kalacağı.
- Kodu değiştirme, üçüncü bir geliştiriciye devretme ve kendi sunucunuza taşıma hakkınız.
- Veritabanı şeması ve kurulum dokümanının teslimata dahil olduğu.
- Verinin tamamının standart formatta (SQL yedeği, CSV, dosya klasörü) dışa aktarılabileceği.
- Güncelleme süresi bittiğinde mevcut sürümün süresiz kullanılabileceği.
- KVKK kapsamında satıcı sizin adınıza veri işliyorsa, veri işleyen ilişkisinin ve saklama süresinin yazılı olduğu.
- Satıcının faaliyeti sona ererse kodun ve belgelerin son sürümünün size bırakılacağı.
Bu sekiz maddeyi teklif metnine ek olarak koyduğunuzda, satıcının hangisine itiraz ettiği tek başına bilgi verir: itiraz edilen madde, gelecekte sizi kilitleyecek maddedir.
Sık yapılan hatalar
- Ürün sayfasındaki "kaynak kod dahil" ibaresini sözleşme yerine koymak.
- Teslimattan sonra kodu hiç açmamak; şifreli dosyaları aylar sonra, kriz anında fark etmek.
- Yedeği yalnızca satıcının panelinden almak. Yedeğin bir kopyası her zaman sizin erişebildiğiniz bir yerde durmalı.
- Alan adını ve hosting hesabını ajans/satıcı adına açtırmak. Alan adı sizin kimliğinizle kayıtlı olmalı.
- Özelleştirmeleri çekirdek dosyaların içine gömmek; ilk güncellemede hepsi silinir.
Bugün yapabileceğiniz beş kontrol
- Dosyaların tamamını indirin ve rastgele 10 PHP dosyasını metin düzenleyicide açın. Başında ionCube, Zend gibi bir başlık ya da uzun anlamsız karakter dizisi görüyorsanız o dosya şifrelidir. Aynı kontrolü ödeme, kurulum ve lisans klasörleri için ayrıca yapın.
- Kod içinde satıcıya ait alan adını arayın (dosyalarda "http" ile başlayan satırları tarayın). Ödeme sağlayıcı ve kargo firması dışında satıcıya giden bir adres varsa, o özelliğin bağımlılığını sorun.
- Tam bir veritabanı yedeği ve yükleme klasörü kopyasını kendi bilgisayarınıza ve ikinci bir yedek alanına alın. Yedeğin açıldığını en az bir kez deneyin; açılmayan yedek yedek değildir.
- Yılda bir kez taşıma tatbikatı yapın: yedeği ikinci bir hostingte alt alan adıyla ayağa kaldırın. Yarım gün sürer, gerçek kriz anında günler kazandırır.
- Alan adı, hosting ve e-posta hesaplarının kayıt sahibi olarak kendi bilgilerinizin göründüğünü doğrulayın; fatura adı yeterli değil, yönetim paneline giriş yetkisi sizde olmalı.
Kaynak kodun değeri, elinizde durmasında değil; onu satıcı olmadan okuyabilmenizde, çalıştırabilmenizde ve taşıyabilmenizde. Bu üç şeyi yazılı garanti altına alan bir teklif, aynı fiyatlı ama garantisiz bir tekliften daima ucuzdur.


