Web formlarında spam koruması: Honeypot, CAPTCHA ve hız sınırlama
· PoolByte Technology

İletişim formunuz her gün onlarca anlamsız mesaj, sahte teklif talebi veya bağlantı dolu yorum getiriyorsa sorun yalnızca can sıkıcı değildir. Gerçek müşteri mesajları bu yığının içinde kaybolur, satış ekibi zaman harcar ve otomatik yanıt e-postaları sahte adreslere gönderildikçe alan adınızın e-posta itibarı zarar görebilir. Bu nedenle formlarda spam koruması bir kolaylık değil, iş sürekliliği meselesidir.
Etkili bir spam koruması için tek bir yöntem yeterli değildir. En iyi sonuç, kullanıcıya görünmeyen birkaç katmanı birleştirip görünür doğrulamayı gerçekten gerektiğinde devreye almakla elde edilir.
Spamın türünü tanıyın
Formlara gelen istenmeyen trafik tek tip değildir. Bağlantı yerleştirmeye çalışan otomatik yorum botları, sahte üyelik açan scriptler, giriş ekranında parola deneyen saldırılar ve ödeme formunda çalıntı kartları deneyen gönderimler farklı önlemler gerektirir. Hangi formun hangi tür saldırı aldığını kayıtlardan görmek, doğru katmanı seçmenizi sağlar.
Görünmez ilk katman: Honeypot ve süre kontrolü
Honeypot, gerçek kullanıcının görmediği ama basit botların doldurduğu gizli bir form alanıdır. Alan CSS ile gizlenir, ekran okuyucular için aria-hidden="true" ve klavye için tabindex="-1" verilir, tarayıcı otomatik doldurması kapatılır. Bu alan dolu gelirse gönderim sessizce reddedilir.
Buna bir süre kontrolü eklemek de etkilidir. Formun açıldığı zamanı kaydedin; birkaç saniyeden kısa sürede doldurulup gönderilen formlar büyük olasılıkla otomatiktir. Bu iki yöntem kullanıcıya hiçbir ek adım yüklemeden basit botların önemli bir kısmını ayıklar. Gelişmiş botlar ise bu kontrolleri aşabilir; bu yüzden tek başına yeterli değildir.
Sunucu tarafında doğrulamayı atlamayın
Tarayıcıda yapılan kontroller kolayca devre dışı bırakılabilir. Gönderilen her alanı sunucuda yeniden doğrulayın:
- Alan uzunluklarını sınırlandırın; ad alanına bin karakter gelmemeli.
- E-posta ve telefon biçimini kontrol edin.
- Mesajdaki bağlantı sayısına bir üst sınır koyun.
- Formlara oturuma bağlı bir CSRF belirteci ekleyin.
CSRF belirteci, başka bir sitenin kullanıcının tarayıcısı üzerinden sizin formunuza istek göndermesini engeller ve dışarıdan doğrudan yapılan toplu gönderimleri de zorlaştırır.
Hız sınırlaması ile toplu gönderimi durdurun
Aynı IP adresinden veya oturumdan kısa sürede gelen çok sayıda gönderimi sınırlandırın. Örneğin bir iletişim formu için dakikada birkaç gönderim makul bir üst sınırdır. Sınır aşıldığında istek reddedilir ve kullanıcıya kısa bir süre sonra tekrar denemesi söylenir.
Giriş ekranlarında bu sınır daha da önemlidir. Başarısız giriş denemelerini sayıp belirli bir eşikten sonra bekleme süresi uygulamak parola deneme saldırılarını yavaşlatır. Hosting tarafındaki güvenlik duvarı ve WAF kuralları da bu trafiği uygulamanıza ulaşmadan durdurabilir; bu katmanı DDoS ve bot trafiği rehberimizde anlattık.
CAPTCHA ve görünmez doğrulamayı doğru kurun
Google reCAPTCHA veya Cloudflare Turnstile gibi hizmetler, kullanıcının bot olup olmadığını çoğu zaman bulmaca çözdürmeden arka planda değerlendirir. Bu araçlarda en kritik adım, tarayıcıdan gelen doğrulama belirtecinin sunucu tarafında hizmetin API'sine sorgulanmasıdır. Yalnızca sayfaya widget eklemek ve sonucu kontrol etmemek koruma sağlamaz.
Üçüncü taraf bir doğrulama hizmeti kullanıcı verisi işler ve çoğu zaman çerez veya benzeri teknolojiler kullanır. Bu nedenle aydınlatma metninizde bu hizmete yer verin; ayrıntılar için KVKK uyumlu web sitesi rehberimize bakabilirsiniz. Erişilebilirlik açısından da görme veya motor engelli kullanıcıların formu tamamlayabildiğini mutlaka test edin.
Otomatik yanıtları kötüye kullanıma kapatın
Form gönderildiğinde kullanıcıya otomatik teşekkür e-postası göndermek iyi bir deneyim sunar. Ancak bu e-postanın içine kullanıcının yazdığı metni aynen eklemek, spam göndericilerin formunuzu kendi mesajlarını üçüncü kişilere iletmek için kullanmasına yol açabilir. Otomatik yanıtta yalnızca sabit bir metin kullanın.
Bildirim e-postalarını kendi alan adınızdan ve doğru kimlik doğrulama kayıtlarıyla gönderin. SPF, DKIM ve DMARC eksikse bildirimler sizin kutunuzda bile spam klasörüne düşebilir.
Reddedilen gönderimleri izleyin
Spam koruması katmanları zamanla yanlış pozitif üretebilir: gerçek bir müşterinin mesajı hız sınırına takılabilir veya doğrulama hizmeti bir ağdan gelen kullanıcıyı reddedebilir. Reddedilen gönderimleri nedeniyle birlikte kaydedin ve belirli aralıklarla gözden geçirin. Bir kuralı sıkılaştırmadan önce bu kaydın size ne söylediğine bakın.
Sık sorulan sorular
Yalnızca CAPTCHA kullanmak yeterli mi?
Çoğu durumda hayır. CAPTCHA, spam koruması zincirinin yalnızca bir halkasıdır; sunucu doğrulamasının ve hız sınırlamasının yerini tutmaz. En iyi sonuç, görünmez katmanlarla birlikte kullanıldığında alınır.
Honeypot alanı erişilebilirliği bozar mı?
Doğru gizlendiğinde bozmaz. Alanın ekran okuyuculardan ve klavye sırasından da gizlendiğini, otomatik doldurmanın kapalı olduğunu test edin.