ModüllerEklentiler TemalarWidgets Xcreate
Giriş Yap Yayınla

Xoops ve Datalife Engine — Modüller ve Eklentiler

📋
11
Toplam İçerik
↑ 12 bu hafta
👁
1024
Toplam Görüntülenme
↑ 3.2K bu hafta
📂
3
Kategori
🆕
11
Bu Haftaki Eklenen
Ana Sayfa » Modüller Profile
👤
Geliştirici
Eren Yumak
📅
Yayın Tarihi
05/05/2026
🔄
Güncelleme
05/05/2026
📦
Sürüm
v2.7.0
🌐
CMS Türü
Xoops
📄
Lisans
GPL v2
✍️ Tüm değişiklikler mevcut profile modülünün üzerine patch biçiminde uygulandı. Veritabanı değişikliği yok. XOOPS 2.7 ile uyumlu.
1
İndirme
8
Görüntülenme
Profile
Modüller
0★
Puan
1
Oylama
📋 Açıklama
📸 Ekranlar
🔄 Değişiklikler
💬 Yorumlar
📖 Özellikler ve Uyumluluk

XOOPS Üye Kayıt Formuna Katmanlı Bot Koruması ve Yapboz Captcha Entegrasyonu

XOOPS'un profile modülünün kayıt formu, varsayılan haliyle yalnızca basit bir matematik sorusu içeriyor. Bu, modern botların birkaç saniyede çözebildiği bir engel. Bu yazıda söz konusu zafiyetin nasıl fark edildiğini ve sekiz katmanlı bir güvenlik mimarisine nasıl dönüştürüldüğünü anlatıyorum.

Sorunun anatomisi

Varsayılan kayıt formunda kullanıcıdan istenen tek bariyer 7 − 0 = ? gibi bir ifadenin sonucunu girmek. Botlar bu tür testleri OCR veya düz metin ayrıştırmayla saniyeler içinde geçebilir. Captcha, gerçek bir engel olmaktan çıkmış; yalnızca bir görüntü unsuru haline gelmiş.

Önceki durum

Sadece matematik sorusu captcha
Bot tarafından otomatik çözülebilir
Rate limiting yok
Session token doğrulaması yok
Her IP sınırsız deneme yapabiliyor
Headless browser ile kolayca geçiliyor

Sonraki durum

8 katmanlı güvenlik mimarisi
Görsel yapboz — sürükleme analizi
IP başına saatlik 5 deneme limiti
HMAC imzalı session token
Honeypot alanlarıyla tuzak
JS davranış skoru analizi


Güvenlik katmanları

Tek bir güvenlik önlemi asla yeterli değildir. Gerçek dayanıklılık, birbirini destekleyen ve birbirinin zayıflığını kapatan katmanlardan gelir.

1.Honeypot alanları sunucu
Forma CSS ile gizlenmiş website, url_input, phone_alt adlı üç alan eklendi. Gerçek kullanıcılar bu alanları görmez ve doldurmaz. Botlar form alanlarını tarayarak otomatik doldurduğundan bu alanlarda herhangi bir değer gelmesi anında red sinyali üretir.

2.Session token (CSRF koruması) her iki taraf
Form her yüklendiğinde PHP'de 48 karakterlik rastgele bir token üretilir ve session'a yazılır. POST geldiğinde gönderilen token ile session'daki token hash_equals() ile zamanlama saldırısına karşı güvenli biçimde karşılaştırılır. Dışarıdan form gönderilmesi bu sayede engellenir.

3.Zaman analizi sunucu
Sayfa yüklenme zamanı session'a kaydedilir. 4 saniyeden kısa sürede gönderilen formlar reddedilir. İnsan bir formu doldurmak için en az birkaç saniyeye ihtiyaç duyar; otomasyon araçları ise milisaniyeler içinde gönderim yapar.

4.JS davranış skoru istemci
JavaScript, sayfada gerçekleşen fare hareketlerini, klavye vuruşlarını, odak değişikliklerini ve yapıştırma sayısını izler. Bu etkileşimlere göre 0-100 arasında bir bot skoru hesaplanır ve gizli bir input'a yazılır. İnsan davranışı skoru düşürürken bot davranışı yükseltir. Form submit anında skor 40'ın üzerindeyse red.

5.User-Agent filtresi sunucu
curl, wget, python-requests, scrapy, sqlmap, nikto ve 25'ten fazla bilinen otomasyon aracının imzası kontrol edilir. Boş User-Agent da reddedilir; gerçek tarayıcılar bu başlığı her zaman gönderir.

6.IP başına rate limiting sunucu
Her IP adresinin saatlik denemesi XOOPS_VAR_PATH/caches/botprotect/ dizinindeki JSON dosyalarıyla izlenir. Bir saat içinde 5 başarısız denemede o IP 60 dakika engellenir. Veritabanı gerektirmez; dosya tabanlı çalışır.

7.Referer ve Accept-Language kontrolü sunucu
Referer başlığı sitenin dışından geliyorsa istek reddedilir. Accept-Language başlığının yokluğu da bot sinyali olarak işlenir; gerçek tarayıcılar bu başlığı her zaman gönderir.

8.Yapboz (slider puzzle) captcha her iki taraf
Matematik sorusunun yerini bir görsel yapboz aldı. Kullanıcı slider'ı sürükleyerek parçayı doğru konuma getirir. Doğrulama sunucu tarafında parçanın X koordinatı ile session'daki hedef koordinat karşılaştırılarak yapılır.

Matematik sorusunu aşabilen bir bot, artık önce honeypot tuzağını, ardından imzalı session token'ı, zaman testini, JS davranış analizini, UA filtresini, rate limiting'i ve son olarak görsel yapboz koordinat doğrulamasını geçmek zorunda. Bu katmanların tamamını atlatmak için artık gerçek bir tarayıcı davranışını simüle eden, XOOPS session mekanizmasını anlayan, HMAC hesabı yapabilen ve insan gibi davranan bir araç gerekiyor.

Bu gerekliliklerin birleşimi, pratik bot saldırılarının ezici çoğunluğunu ekonomik açıdan caydırıcı kılmaktadır.

Gereksinimler
🐘 PHP 7.4+
🗄️ MySQL 5.7+
🌐 jQuery 3.x
2026-05-05
Profil Bot Koruması
Xoops kayıt formuna güvenlik entegresi.
Publish Comment
Comment Rules
All comments need to be approved by administrator
Title*
Name*
Email*
Website
Message*
Confirmation Code
1 + 1 = ?  
Input the result from the expression
Maximum attempts you can try: 10
* = Required
Modüldeki Öne Çıkan Özellikler
Honeypot alanlarıSession token (CSRF koruması)
Zaman analizi JS davranış skoru
User-Agent filtresiIP başına rate limiting
Referer ve Accept-Language kontrolüYapboz (slider puzzle) captcha
PlatformSürümPHPDurum
XOOPS2.7.08.1🟢 Tam Uyumlu
📦 Dosya Bilgisi
🗜️
profile_puzzle_v6.zip
ZIP19 KB05.05.2026
1 indirme
application/zip
İndir
⭐ Puanlama
🏷️ Diğer İçerikler
  • 🎲
    Datalife Engine feedback.php Özelleştirme

    Geri bildirim sayfasından mesaj gönderirken, telefon numarası gibi giriş için kendi alanımı nasıl eklediğimi......

  • 🎲
    Xcreate

    XCREATE — XOOPS İÇİN GELİŞMİŞ İÇERİK YÖNETİM MODÜLÜXcreate, XOOPS platformu için tasarlanmış kateg......

  • 🎲
    Xoops Smart Code

    Xoops tema mantığı ne yazıkki .tpl mantığı gibi çalışmamaktadır.Bu yüzden temalar standart kalıplar şek......

  • 🎲
    XOOPS SSL - HTTPS

    Xoops için SSL kurulumu daha sonra yapıldığında https:// protokolünde yönlendirme sorunları olabiliyor.Bu sor......

  • 🎲
    Profile

    XOOPS Üye Kayıt Formuna Katmanlı Bot Koruması ve Yapboz Captcha EntegrasyonuXOOPS'un profile modülünün kayıt ......

  • 🎲
    Image Manager Xoops

    Xoops da Image Manager dan yüklenen resimler sayfada üstüne tıklandığında orjinal boyutunda açılması gereki......