Kısaca
Web sitenizdeki bir sohbet botu herkese açıktır; bu yüzden Apex'i birilerinin onu kötüye kullanmaya çalışacağı varsayımıyla geliştirdik: faturanızı şişirmek, söylememesi gerekeni söyletmek, başka bir müşterinin verisini okumak ya da bir hesabı ele geçirmek için. Aşağıdakiler varsayılan olarak açık olan korumalardır. Bu sayfa hedefleri değil, ürünün bugün yaptığı şeyleri anlatır.
Web siteniz ve sohbet widget'ı
- Yalnızca sizin sitelerinizde çalışır. Her asistanın herkese açık bir site anahtarı vardır, ancak sohbet API'si bunu yalnızca sizin listelediğiniz web sitelerinden kabul eder. Başka kaynaklardan gelen istekler ve tarayıcı ön kontrolleri reddedilir; kopyalanmış bir yerleştirme kodu başka yerde hiçbir şey yapmaz. Site anahtarı bir sır değildir ve hesabınıza erişim vermez.
- Sayfanızdan yalıtılmıştır. Widget Shadow DOM içinde çizilir; sitenizin CSS'i onu bozamaz ve sayfanızı okumaz.
- Çerez yok, izleme yok. Widget çerez ve üçüncü taraf izleyici kullanmaz. Ayarınıza göre yalnızca konuşma kimliğini hatırlar: sekme için, tarayıcı için ya da hiç.
- Yalnızca küçük istekler. Her istek 16 KB ile sınırlıdır, mesajların uzunluğu sınırlıdır (varsayılan 1.000 karakter, ayarlanabilir) ve bir konuşmanın azami uzunluğu vardır.
- Yanıtlar önbelleğe alınmaz ve
nosniffile gönderilir; böylece tarayıcı veya CDN bir ziyaretçinin sohbetini saklayamaz ya da farklı yorumlayamaz.
Yapay zekâ güvenliği
- Yanıtlar içeriğinizden gelir. Asistana yalnızca Apex'e verdiğiniz sayfalarda ve metinlerde bulunan bilgilerle yanıt vermesi, fiyat, politika veya iletişim bilgisi uydurmaması ve ilgili bir şey bulamazsa bilmediğini söylemesi talimatı verilir. Bilmediğinde, konuşmayı ekibinize devretmeyi önerebilir.
- Prompt injection'a karşı sertleştirilmiştir. Ziyaretçilerin mesajları, web sitenizin metni ve sizin özel talimatlarınız modele açıkça işaretlenmiş bölümlerde veri olarak iletilir; sabit güvenlik kuralları önce gelir ve bunlar tarafından geçersiz kılınamaz. Bölüm işaretlerimizi taklit eden metinler modele ulaşmadan etkisizleştirilir. Kendi talimatlarınız tonu ve konuları şekillendirebilir, ancak temellendirmeyi veya güvenliği kapatamaz.
- Araç yok, eylem yok. Asistan sipariş veremez, hesap değiştiremez, kod çalıştıramaz, web'de gezemez veya başka sistemleri çağıramaz. Başarılı bir manipülasyonun yapabileceği en kötü şey, tek bir sohbetin söylediğini değiştirmektir.
- Yapay zekâ olduğu konusunda dürüsttür ve kesin tıbbi, hukuki veya mali tavsiye vermez. Nazikçe reddetmesi gereken konuları da listeleyebilirsiniz.
- Müşteri başına yalıtılmıştır. Arama yalnızca soru sorulan asistanın içeriğinde yapılır; bir müşterinin bilgisi hiçbir zaman başkasının sitesinde yanıt vermek için kullanılmaz.
Kötüye kullanım ve maliyet koruması
- Ziyaretçi başına hız sınırı: varsayılan olarak dakikada 15 mesaj, asistan başına ayarlanabilir (1 ile 120 arası); bunun yanında asistan başına bir tavan vardır, böylece tek bir kişi veya betik hakkınızı tüketemez.
- Asistan başına günlük jeton bütçesi (varsayılan 2 milyon, en fazla 20 milyon); veritabanında sayılır, yeniden başlatmalardan etkilenmez. Bütçe bittiğinde asistan, maliyeti artırmak yerine bir sonraki UTC gününe kadar yanıt vermeyi durdurur.
- E-posta spam aracı olarak kullanılamaz. Devir talepleri ziyaretçi, asistan ve alıcı başına saatlik ve günlük olarak sınırlıdır. Bir devir adresine e-posta göndermeden önce adrese giden bir kodla doğrulanması gerekir; böylece kimse sistemi başka birinin gelen kutusuna yöneltemez.
- Bot kontrolleri. Kayıt, giriş, şifre sıfırlama ve bekleme listesi Cloudflare Turnstile ile korunur. Kontrol tamamlanamazsa istek izin verilmek yerine reddedilir.
Hesaplar ve giriş
- Şifreler hiçbir zaman saklanmaz; yalnızca tuzlanmış bir scrypt özeti (kasıtlı olarak yavaş ve bellek yoğun bir fonksiyon) saklanır. En az uzunluk 8 karakterdir. Özetler, kimseyi dışarıda bırakmadan sonradan güçlendirilebilir.
- E-posta doğrulaması panel açılmadan önce zorunludur. Kodlar altı haneli, 15 dakika geçerlidir, yalnızca özet olarak saklanır, 5 yanlış denemeden sonra kilitlenir ve bir saatte ne sıklıkla istenebileceği ve tahmin edilebileceği sınırlıdır.
- Kaba kuvvet koruması. Başarısız girişler e-posta, IP adresi ve ikisi birlikte olarak sayılır ve sonraki denemeleri 15 dakika kilitler. Bilinmeyen bir e-postanın reddi yanlış şifreyle aynı sürer ve hata mesajı aynıdır; böylece form hangi e-postaların hesabı olduğunu ele vermez.
- Oturumlar. Çerez rastgele 256 bitlik bir belirteç taşır; veritabanımız yalnızca onun SHA-256 özetini saklar, dolayısıyla bir veritabanı sızıntısı canlı oturumları vermez. Çerez HttpOnly (betikler okuyamaz), Secure (yalnızca HTTPS) ve SameSite=Lax'tır. Oturum 24 saat, "oturumumu açık tut" derseniz 30 gün sürer.
- Kontrol sizde. Şifrenizi değiştirmek veya sıfırlamak diğer tüm cihazlardaki oturumları kapatır. Ayarlar'dan diğer tüm cihazlardan da çıkış yapabilir ve kaç tanesinin açık olduğunu görebilirsiniz.
- Google ve GitHub ile giriş tek kullanımlık bir state değeri (Google için ayrıca PKCE) kullanır. Yalnızca sağlayıcının doğrulanmış dediği e-postayı kabul ederiz; böylece kimse sahibi olmadığı bir adresi sahiplenemez.
- Güvenlik kaydı. Girişler, başarısızlıklar, sıfırlamalar ve şifre değişiklikleri zaman, IP adresi ve tarayıcı bilgisiyle kaydedilir; böylece bir olay incelenebilir.
- Hesabınızı kendiniz silin; e-postanızı yazarak onaylarsınız. Yalnızca sizin üyesi olduğunuz çalışma alanları da silinir.
Verilerinizi koruma
- Aktarımda şifreleme. Web sitesi, panel ve sohbet API'sine her bağlantı HTTPS kullanır; HSTS (iki yıl, alt alan adları dahil) tarayıcıların düz HTTP'ye dönmesini engeller. Veritabanı bağlantısı şifrelidir ve sohbet API'si veritabanının sertifikasını doğrular.
- Her çalışma alanı ayrıdır. Panel sorguları her zaman oturum açmış kullanıcının çalışma alanıyla sınırlıdır. Her veritabanı tablosunda, herkese açık politika olmadan satır düzeyinde güvenlik (RLS) açıktır; yani veritabanının herkese açık REST arayüzü hiçbir şeyi okuyamaz, yalnızca kendi kimlik bilgileriyle sunucularımız okuyabilir.
- Kodlar ve belirteçler özetlenir, okunabilir biçimde saklanmaz: oturum belirteçleri, doğrulama ve şifre sıfırlama kodları ve devir adresi doğrulama kodları.
- Kişisel veriler kayıtlara girmez. E-posta adresleri, telefon numaraları, kart numaraları (Luhn algoritmasıyla kontrol edilir) ve Türkiye IBAN'ları, uygulama kayıtlarımıza yazılmadan önce maskelenir.
- Saklama süresi sizde. Konuşmalar, belirlediğiniz sürenin (1 ile 365 gün, varsayılan 30) sonunda otomatik silinir ve istediğinizi panelden kendiniz silebilirsiniz.
- Eğitim isteğe bağlıdır. İçeriğinizi kendi modellerimizi geliştirmek için yalnızca evet dediyseniz kullanırız ve bunu istediğiniz zaman değiştirebilirsiniz.
- Önemli olan yerde AB'de barındırılır. Sohbet API'si Frankfurt, Almanya'da çalışır. Verilere erişen tüm sağlayıcılar için Gizlilik Politikası'na bakın.
Web sitenizi güvenle okuma
Apex'e bir URL verdiğinizde tarayıcımız bunu sizin adınıza çeker. URL'yi siz yazdığınız için onu güvenilmez girdi sayarız; böylece iç ağımıza ulaşmak için kullanılamaz:
- Yalnızca standart portlarda (80 ve 443)
httpvehttps; içine kimlik bilgisi gömülü URL'ler kabul edilmez. - Yalnızca herkese açık adresler. Özel, geri döngü (loopback), link-local ve ayrılmış aralıklar, IPv6 ve IPv4-eşlemeli biçimleri dahil engellenir ve kontrol gerçekten bağlanılan adreste yapılır; bu da DNS rebinding hilelerini boşa çıkarır.
localhost,.localve.internalgibi yerel ad alanları reddedilir. - Her yönlendirme yeniden kontrol edilir, en fazla 5 adım. Süre ve boyut sınırlıdır; sıkıştırma açıldıktan sonra da, zip bombalarını durdurmak için.
- Kendini
ApexBotolarak tanıtır ve siteninrobots.txtdosyasına uyar.
Tarayıcı korumaları
Panel ve web sitesi her sayfada şu güvenlik başlıklarını gönderir:
X-Frame-Options: DENYveframe-ancestors 'none'; panel clickjacking için çerçeve içine alınamaz.- İki yıl süreli, alt alan adlarını da kapsayan
Strict-Transport-Security. X-Content-Type-Options: nosniffve sıkı bir referrer politikası.- İçerik güvenliği politikasında
object-src 'none'vebase-uri 'self'. - Kamera, mikrofon ve konumu kapatan bir izin politikası.
API yalnızca JSON gövdeleri kabul eder; bir siteler arası form bunları ön kontrol olmadan gönderemez. Sunucuyu tanıtan bir başlık da yayınlanmaz.
Nasıl geliştiriyor ve işletiyoruz
- Giriş, arama, hız sınırları, tarayıcı ve veri maskelemeyi yöneten kodun otomatik testleri vardır.
- Sırlar (API anahtarları, veritabanı kimlik bilgileri) kodda değil, barındırma sağlayıcılarının gizli depolarında durur.
- Veritabanı değişiklikleri sürümlü göçlerdir (migration); otomatik uygulanır ve güvenle yeniden çalıştırılabilir.
- Güvendiğimiz sağlayıcılar ve her birinin ne aldığı Gizlilik Politikası'nda listelenir.
Sizin yapabilecekleriniz
- Yalnızca asistanın görünmesi gereken web sitelerini listeleyin ve alan adlarınız değiştiğinde listeyi gözden geçirin.
- Güçlü ve benzersiz bir şifre veya Google ya da GitHub girişi kullanın; artık kullanmadığınız cihazların oturumunu kapatın.
- Apex'e verdiğiniz sayfalara ve metinlere özel bilgi koymayın: orada olan her şeyin bir ziyaretçiye aktarılabileceğini varsayın.
- Sitenize uygun saklama süresini ve günlük bütçeyi belirleyin; kontrolünüzdeki bir devir adresi kullanın.
- KVKK ve GDPR'ın gerektirdiği gibi, ziyaretçilerinize verilerini nasıl işlediğinizi anlatın.
Güvenlik açığı veya olay bildirin
Bir zayıflık bulduğunuzu ya da hesabınızda bir şeylerin ters gittiğini düşünüyorsanız hello@apexbot.eu adresine yazın; yeniden üretmemize yetecek ayrıntıyı ekleyin. Kamuya açıklamadan önce düzeltmemiz için makul bir süre tanımanızı, başkalarının verilerine erişmemenizi, hizmeti aksatmamanızı ve canlı ortama otomatik tarama yapmamanızı rica ederiz. Bildiriminizi onaylar ve sizi bilgilendirmeye devam ederiz.
Hiçbir sistem kusursuz derecede güvenli değildir. Verilerinizi etkileyen bir ihlal olursa kanunun gerektirdiği şekilde size ve ilgili kurumlara bildiririz. Kişisel verileri nasıl işlediğimiz için Gizlilik Politikası'na bakın.