Güvenlik Yaklaşımımız

Son güncelleme: 1 Kasım 2026

GeckoFlag, kendi sunucunuzda çalışan bir yazılımdır. Proje bilgilerinizi gönül rahatlığıyla emanet edebilmeniz için geliştirici her sürümde güvenlik testlerini bizzat yürütür ve bu testlerin kapsamını ve sonuçlarını bu sayfada yayımlar.

Bu sayfa, geliştiricinin kendi yaptığı testlerin kaydıdırBağımsız bir kuruluş tarafından verilmiş bir sertifika veya yapılmış bir denetim değildir. Neleri test ettiğimizi de birlikte yayımladığımız için, GeckoFlag'i kullanmaya karar verirken bu bilgilerden yararlanabilirsiniz.

Tasarımdaki güvenlik önlemleri

GeckoFlag aşağıdaki önlemleri standart olarak içerir. Hepsi herhangi bir ayar gerektirmeden etkindir.

Parola koruması

Parolalar düz metin olarak saklanmaz; bcrypt ile özetlenerek (hash) saklanır. Parola sıfırlama belirteçleri de özetlenerek saklanır ve parola sıfırlama talebi sayısı sınırlandırılır.

Oturum açma denemelerinin sınırlandırılması

Başarısız oturum açma denemeleri hem hesap bazında hem de bağlantı kaynağı IP adresi bazında sayılır; belirli bir sayı aşıldığında oturum açma geçici olarak kısıtlanır. Bu, kaba kuvvet saldırılarını ve çok sayıda hesabı hedef alan saldırıları engeller.

CSRF koruması

Tüm form gönderimlerinde bir belirteç doğrulanır ve harici sitelerden kullanıcı adına yapılan sahte işlemler engellenir.

XSS koruması

Görevler, yorumlar, Wiki ve notlar gibi zengin metin içerikleri, HTML Purifier ile yalnızca izin verilen etiketler bırakılarak kaydedilir ve görüntülenir. Bağlantılarda yalnızca http ve https'ye izin verilir. Yapay zekânın ürettiği metinler de kaydedilmeden önce aynı işlemden geçirilir.

SQL enjeksiyonu koruması

Veritabanı işlemlerinde CakePHP 5'in ORM'si ve hazırlanmış ifadeler (prepared statements) kullanılır.

Host üst bilgisinin doğrulanması

Parola sıfırlama, davet ve bildirim e-postalarındaki bağlantılar, isteğin Host üst bilgisine göre değil, kayıtlı alan adına göre oluşturulur. Sahte bir Host üst bilgisiyle e-postadaki bağlantılar harici bir adrese yönlendirilemez.

Dosyaların saklanması

Görev görselleri ve proje dosyaları genel klasörün dışında saklanır ve yalnızca görüntülemek isteyen kişinin projenin üyesi olduğu doğrulandıktan sonra sunulur. PHP gibi çalıştırılabilir uzantılara sahip dosyalar kabul edilmez.

API anahtarının şifrelenmesi

Yapay zekâ özellikleri için kullanılan Claude API anahtarı şifrelenerek veritabanında saklanır.

Claude entegrasyonu API token’ları

Claude entegrasyonu varsayılan olarak kapalıdır ve yalnızca bir yönetici özelliği açıp her kullanıcı için izin verdiğinde kullanılabilir. Her API token’ının yalnızca karma (hash) değeri saklanır ve bir son kullanma tarihi belirlenebilir. Parola değiştirildiğinde token’lar geçersiz olur. API de ekranlarla aynı yetkileri kontrol eder; salt okunur token’lar hiçbir şeyi değiştiremez.

IP adresi kısıtlaması

Yöneticiler, erişime izin verilen IP adreslerini sınırlandırabilir.

Kurulum sihirbazının kapatılması

Kurulum tamamlandıktan sonra kurulum sihirbazı ekranına erişilemez.

Özel klasörlerin korunması

Yapılandırma, günlük ve kaynak kod gibi klasörlere doğrudan erişim Apache'de standart olarak engellenir (Nginx için önerilen ayarlara bakın).

Güncelleme öncesi otomatik yedekleme

Yazılım güncellemesinden önce otomatik olarak bir yedek oluşturulur.

Güncelleme dosyalarının imza doğrulaması

Resmî güncelleme dosyaları geliştiricinin dijital imzasını (Ed25519) taşır. Güncellemeden önce imza ve tüm dosyaların içeriği karşılaştırılır; değiştirilmiş dosyalar veya resmî olmayan güncelleme dosyaları uygulanmaz.

Görsel yüklemelerinin doğrulanması

Profil fotoğrafı, küçük resim ve logo gibi görsellerin biçimi dosyanın içeriğine göre belirlenir ve görseller rastgele bir dosya adıyla kaydedilir. Görsellerin saklandığı klasörlerden görsel dışındaki dosyalar sunulmaz (Apache'de). SVG kabul edilmez.

Güvenlik üst bilgileri

Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy ve Permissions-Policy üst bilgileri gönderilerek tıklama korsanlığı (clickjacking) ve bilgilerin harici sitelere sızması önlenir. HTTPS ile çalıştırıldığında Strict-Transport-Security de gönderilir; böylece tarayıcı her zaman HTTPS ile bağlanır.

Oturum yönetimi

Her oturum açışta oturum yeniden oluşturulur. Yetki değişiklikleri, hesap silme ve parola değişiklikleri, oturumu açık olan ekranlara da hemen yansır. E-posta adresini ve parolayı değiştirmek için mevcut parolanın girilmesi gerekir.

Her sürümde yapılan güvenlik testleri

Yeni bir sürüm yayımlanmadan önce aşağıdaki testler yapılır. Testler, canlı ortamla aynı yapılandırmaya sahip bir test ortamında yürütülür; yayındaki hizmetlere veya müşterilerimizin sunucularına uygulanmaz. En son sürümde yapılanlar “En son sürümün test sonuçları” bölümünde yer almaktadır.

KategoriTest içeriğiKullanılan araçlar ve standartlarSıklık
Bağımlı kütüphanelerKullanılan kütüphanelerde bilinen güvenlik açığı olup olmadığını kontrol etme ve kullanılan kütüphanelerin listesini (SBOM) oluşturmacomposer audit, OSV-Scanner, CycloneDXHer sürümde
Statik analizGirdilerin tehlikeli işlemlere ulaştığı yolların (XSS, SQL enjeksiyonu vb.) kaynak koddan tespit edilmesiPsalm (taint analizi), PHPStan (seviye 5), SemgrepHer sürümde
Gizli bilgi sızıntısıKaynak kodda veya dağıtım dosyalarında parola ya da API anahtarı bulunup bulunmadığıgitleaksHer sürümde
Dinamik taramaYönetici ve normal kullanıcı olarak oturum açılmış durumda gerçek saldırı istekleri gönderilerek tepkilerin kontrol edilmesiNucleiHer sürümde
Yetki testleriÜyesi olunmayan projelerin görevlerine, dosyalarına ve notlarına, URL'deki ID değiştirilerek erişilip işlem yapılıp yapılamadığıOtomatik testler (PHPUnit), manuel kontrolHer sürümde
Dosya yüklemeÇalıştırılabilir dosyaların, görsel gibi gösterilen dosyaların, dosya yolunu manipüle eden ZIP dosyalarının vb. reddedilip reddedilmediğiKod incelemesi, manuel kontrolHer sürümde
XSSGörev açıklamalarına, yorumlara, Wiki'ye ve yapay zekânın ürettiği metinlere saldırı dizeleri girilerek betiklerin çalışmadığının kontrol edilmesiKod incelemesi, manuel kontrolHer sürümde
Sunucu yapılandırmasına göre kontrolApache ve Nginx'te ve genel klasörün farklı yerleşimlerinde yapılandırma dosyalarına ve günlüklere doğrudan erişilip erişilemediğiManuel kontrolHer sürümde
Claude entegrasyonu uzantısıUzantının kullandığı kütüphanelerdeki bilinen güvenlik açıkları, API token’ının işlenmesi ve isteklerin gönderildiği yerlere ilişkin kısıtlamalarnpm audit, gitleaks, kod incelemesiHer uzantı sürümünde
Kontrol listesiyle öz değerlendirmeKimlik doğrulama, oturum, girdi doğrulama, hata işleme vb. konuların madde madde kontrol edilmesiOWASP ASVS 5.0 Seviye 1 referans alınarak, IPA (Japonya): “How to Secure Your Website”Her ana sürümde
Resmî web sitesigeckoflag.com'un HTTPS yapılandırması ve güvenlik üst bilgileriSSL Labs, Mozilla ObservatoryAyda bir

“Yüksek” veya “Orta” önem derecesinde bir sorun bulunursa, düzeltilip yeniden test edilene kadar sürüm yayımlanmaz. “Düşük” düzeydeki sorunlar incelenir ve ya düzeltilir ya da etkisinin olmama nedeni kayda geçirilir.

Bağımlı kütüphanelerin güncellenmesine ilişkin politika

GeckoFlag'in kullandığı kütüphanelerdeki (CakePHP vb.) bilinen güvenlik açıkları her sürümde kontrol edilir. GeckoFlag'i etkileyen bir güvenlik açığı bulunursa, düzeltilmiş sürüm aşağıdaki süreler hedeflenerek yayımlanır.

  • Önem derecesi “Kritik” ve “Yüksek”: Kamuya duyurulmasından itibaren 14 gün içinde
  • Önem derecesi “Orta”: Kamuya duyurulmasından itibaren 30 gün içinde
  • Önem derecesi “Düşük”: Bir sonraki sürümde (en geç 90 gün içinde)

GeckoFlag'in kullanım şeklinde etkisi olmayan güvenlik açıkları için de bir sonraki sürümde düzeltilmiş sürüme güncelleme yapılır. Geliştirme amaçlı kütüphaneler dağıtım dosyalarına dahil edilmez.

En son sürümün test sonuçları: v1.11.0

v1.11.0'da “Yüksek” veya “Orta” önem derecesinde düzeltilmemiş sorun bulunmamaktadır (test tarihi: 2026-10-28).

Bu testte v1.10.0’dan bu yana yapılan değişiklikler (Claude entegrasyonu, zengin metinde yazı ve arka plan renkleri ile ayırıcılar vb.) incelendi; ayrıca önceki sürümlerden beri var olan sorunlar da düzeltildi. v1.10.0 veya daha eski bir sürüm kullanıyorsanız v1.11.0’a güncellemenizi öneririz.

PHP / VeritabanıPHP 8.3, MariaDB 10.11
Web sunucusuApache 2.4, Nginx 1.24 (PHP-FPM 8.3), PHP yerleşik sunucusu
Test yeriGeliştiricinin test ortamı
TestKullanılan araçlar (sürüm)Bulgular (Yüksek / Orta / Düşük)Yapılan işlem
Bağımlı kütüphanelerGitHub Advisory Database, FriendsOfPHP security-advisories (2026-10-28 itibarıyla veriler; 89 paket)0 / 0 / 0Dağıtım dosyalarındaki kütüphanelerde bilinen bir güvenlik açığı yoktur. Yalnızca geliştirmede kullanılan kütüphanelerdeki bilinen açıklar v1.11.0’da güncellenerek giderildi (geliştirme kütüphaneleri dağıtım dosyalarına dahil edilmez)
Statik analiz ve kod incelemesiPsalm 5.26.1 (taint analizi), PHPStan 2.1.17 (seviye 5), Semgrep 1.182.1, manuel kod incelemesi (v1.10.0’dan bu yana yapılan değişiklikler: Claude entegrasyonunun API’si ve token’ları, zengin metin, oturumun açık kalması, yazılım güncellemeleri; ayrıca tüm ekranlardaki bağlantı çıktısı)1 / 1 / 3“Yüksek” ve “Orta” bulgular ile 2 “Düşük” bulgu v1.11.0’da düzeltildi. Kalan 1 “Düşük” bulgu yalnızca kullanıcının kendi işlemleriyle ortaya çıkar ve etkisinin sınırlı olduğu doğrulandı. “Yüksek” bulgu önceki sürümlerde de mevcuttu
Gizli bilgi sızıntısıgitleaks 8.24.20 / 0 / 0Hem kaynak kod hem de dağıtım dosyaları kontrol edildi. 2 tespitin ikisi de yanlış pozitifti (harici kütüphanelerdeki örnek dizeler vb.)
Düzeltmelerin doğrulanmasıTest ortamında (PHP 8.3, MariaDB 10.11, Apache 2.4, Nginx 1.24, Chromium) çalışma kontrolü—Her bulgu için, düzeltme öncesindeki sorunun artık yeniden oluşmadığı doğrulandı
Dinamik taramaNuclei v3.11.1 (şablonlar v10.5.1); oturum açmadan, yönetici ve üye olarak yapıldı0 / 0 / 0Sorun yok
Yetki testleriPHPUnit 12.5 (454 otomatik test. Önceki kontrollere ek olarak, Claude entegrasyonu API’sinin token olmadan, salt okunur token ile, izin verilmeyen kullanıcılardan ve özellik kapalıyken gelen istekleri reddettiği ve kullanıcının üyesi olmadığı projelere asla ulaşmadığı doğrulandı)0 / 0 / 0Sorun yok
Sunucu yapılandırmasına göre kontrolManuel (Apache 2.4 ve Nginx 1.24’te genel klasörün 2 farklı yerleşimi; yapılandırma dosyaları, günlükler, oturumlar, saklanan dosyalar vb. için 39 URL)0 / 0 / 1v1.11.0’da düzeltildi: eski sürümlerin dosya klasörüne (files) doğrudan erişim artık Apache’de de tamamen reddediliyor. Başka sorun yok
Kontrol listesiOWASP ASVS 5.0 Seviye 1 (70 madde)Kapsamdaki 56 maddeden 50'si karşılanıyorBu sefer gözden geçirilmedi (v1.10.0 sonucu geçerliliğini koruyor)
Claude entegrasyonu uzantısınpm audit, gitleaks 8.24.2, mcpb validate, manuel kod incelemesi (geckoflag-1.0.0.mcpb)0 / 0 / 0Dağıtım dosyasındaki kütüphaneleri etkileyen bilinen bir güvenlik açığı yoktur. API token’ının nasıl işlendiği ve isteklerin gönderildiği yerlere ilişkin kısıtlamalar (yalnızca HTTPS, yönlendirmeler izlenmez) kontrol edildi

Önceki sürümler dahil tüm sürümlerin test sonuçları “Önceki test sonuçları” sayfasında yer alır.

Test edilmeyen alanlar

Yukarıdaki testlerin aşağıdaki sınırlamaları vardır. GeckoFlag'i kullanmayı değerlendirirken lütfen bunları da göz önünde bulundurun.

  • Bağımsız bir test yaptırılmamıştır. Dış uzmanlar tarafından kaynak kod incelemesi veya sızma testi şu anda yapılmamaktadır.
  • Sizin sunucu ortamınız test kapsamı dışındadır. Güvenlik düzeyi; işletim sistemi, web sunucusu, PHP ve veritabanının yapılandırmasına ve güncellik durumuna göre büyük ölçüde değişir.
  • Tüm barındırma ortamlarında doğrulama yapılmamıştır. Test edilen yapılandırmalar, “En son sürümün test sonuçları” bölümünde listelenenlerle sınırlıdır.
  • Harici hizmetler kapsam dışındadır. Yapay zekâ özelliklerinin kullandığı Anthropic API'si, Claude entegrasyonunun kullandığı Claude masaüstü uygulaması veya e-posta gönderim sunucuları gibi hizmetlerin güvenliği, ilgili sağlayıcılarına bağlıdır.
  • Otomatik araçların tespit edemediği sorunlar. Araçların tespit etmediği türdeki sorunlar (iş mantığındaki hatalar vb.) manuel testlerle tamamlanmaktadır, ancak her şeyin kapsanması mümkün değildir.

Bir güvenlik açığı bulursanız

GeckoFlag'de güvenlik açığı olduğunu düşündüğünüz bir sorun bulursanız, bunu herkese açık bir ortamda paylaşmak yerine lütfen doğrudan aşağıdaki iletişim kanalına bildirin. Tüm bildirimler doğrudan geliştirici tarafından incelenir.

Bildirim kanalı: İletişim formunda talep türü olarak “Güvenlik açığı bildirimi”ni seçerek bize ulaşın

Bildiriminizde yer almasını istediğimiz bilgiler

  • Etkilenen sürüm ve sorunun bulunduğu ekran veya özellik
  • Yeniden oluşturma adımları (mümkün olduğunca)
  • Olası etkiler
  • Kullandığınız sunucu ortamı (PHP, web sunucusu vb.)

Ricamız

  • Doğrulamayı yalnızca kendi yönettiğiniz bir ortamda yapın; başkalarının işlettiği GeckoFlag kurulumlarına veya geckoflag.com'a yönelik saldırı niteliğinde işlemler yapmayın.

İsterseniz, düzeltilmiş sürümün güvenlik bilgilerinde teşekkür olarak adınıza yer veririz.

Dağıtım dosyalarının SHA-256 değerleri

İndirdiğiniz dosyanın resmî dosyayla aynı olup olmadığını aşağıdaki değerle karşılaştırarak doğrulayabilirsiniz.

DosyaSHA-256
GeckoFlag - 1.11.0.zip33354ac588c4cb4de2953c3c26a484953c2bb886f38196ba4bcf4fe629648399
geckoflag-1.0.0.mcpb44f2c6dfc9f437856d0680920a327820d757a14116064faa6e46ad8a961d0747

Doğrulama yöntemi: Windows'ta PowerShell'de Get-FileHash dosya_adı -Algorithm SHA256, macOS ve Linux'ta shasum -a 256 dosya_adı komutunu çalıştırın.

Güvenli kullanım için önerilen ayarlar

GeckoFlag'in güvenliği, kurulduğu sunucunun ayarlarına da bağlıdır. Aşağıdaki ayarları öneriyoruz.

  1. Dosyaları yükledikten sonra kurulumu hemen tamamlayın: Kurulum tamamlanana kadar, URL'yi bilen herkes kurulum ekranını açabilir. Dosyaları yerleştirdikten sonra kurulumu hemen tamamlayın.
  2. HTTPS ile çalıştırın: Oturum açma bilgileri ve proje içerikleri şifrelenerek iletilir. Birçok paylaşımlı hosting hizmetinde ücretsiz SSL sertifikası kullanılabilir. Bir kez HTTPS ile açıldıktan sonra tarayıcı o adrese sonraki 1 yıl boyunca HTTPS ile bağlanır (v1.10.0 ve sonrası). HTTPS kullanmayı bırakmayı planlıyorsanız buna dikkat edin.
  3. Genel klasörü (belge kökü) webroot olarak ayarlayın: Böylece yapılandırma dosyaları ve günlükler web üzerinden görülemeyen bir konumda kalır.
  4. Nginx kullanıyorsanız ayarları ekleyin: Nginx'te .htaccess çalışmaz. Ayrıca özel klasörlere erişimi engelleyin ve görsel yükleme klasöründe (webroot/img) PHP'nin çalışmamasını sağlayın. Yapılandırma örneği için kılavuza (Kurulum adımları) bakın.
  5. En son sürüme güncelleyin: Güvenlik düzeltmeleri en son sürüme dahil edilerek sunulur. Güncelleme dosyalarını resmî siteden edinin ve SHA-256 değerini doğrulayın. v1.10.0 ve sonrasında, güncellemeden önce imza da otomatik olarak doğrulanır.
  6. PHP ve veritabanını desteklenen sürümlerde tutun: Desteği sona ermiş PHP sürümleri için düzeltme yayımlanmaz.
  7. Yönetici hesaplarını koruyun: Uzun ve tahmin edilmesi zor parolalar kullanın ve yönetici yetkisini yalnızca ihtiyacı olan kişilere verin.
  8. Şirket içi kullanımda IP kısıtlamasını kullanın: “Ayarlar” bölümünden erişebilecek IP adreslerini sınırlandırabilirsiniz.
  9. Düzenli olarak yedek alın: Veritabanını ve yüklenen dosyaları sunucudan ayrı bir yerde saklayın.

Güvenlikle ilgili sorular için iletişime geçin