Yönetim: admin.php?mod=shield_pro. Grup 1. Sürüm XML’de 3.2.0, DLE 21. Bootstrap içindeki sürüm sabiti hâlâ 3.1.2 yazıyor, paneli şaşırtmasın.
ZIP’teki xml’i yükle, aktif et. Menü: DLE-Shield-Pro. Görünmezse kapat-aç, eklenti önbelleğini temizle. İkon yoksa kurulum 70×70 üretir (public/adminpanel/images/shield-pro.png).
Pasifte menü kaydı kalkar, tablolar durur. Eklentiyi silersen ayar, log, blok, beyaz liste, dosya hash tabloları da gider. Saklamak istiyorsan silmeden önce XML’deki silme kancasını boşalt.
?controller=antibot eklentiye girmeden DLE’de biter — captcha kırılmasın diye.
Nereye takılıyor?
Ön yüz bootstrap index.php içinde init’ten önce. DLE 21’de ana şablon Gzip ile bitiyor; init’ten sonraya koyarsan kod ölür (3.1.1 böyleydi).
Ön yüz tarama, giriş doğrulandıktan sonra init.php içinde. $member_id hazır, grup 1 muafiyeti gerçek.
Panel: engine/inc/include/init.php. İstek sınırı ve IP listesi giriş die()’inden önce — eski admin.php kancası login sayfasını hiç korumuyordu. Panel taraması üye oturumu kurulduktan sonra, bağlam admin: grup 1 tamamen geçer (şablon / sorgu düzenlemek meşru). admin_bypass kapalıyken grup 1 ön yüzde taranır; açıkken ön yüz de muaf. Panel her durumda grup 1 muaf.
Cron (cron.php, cron=1): dosya taraması (aralık dolmuşsa), log temizliği, geçici e-posta listesi (haftada bir), otomatik IP engeli.
AJAX: index.php?controller=ajax&mod=shield_pro, grup 1 + user_hash. Controller whitelist’e eklenmiş.
Ön yüz POST formlarına gizli shield_website ve JS çerezi dle_shield_js gömülür (main.php, </body> öncesi).
Tablolar
Prefix’li yedi tablo: ayarlar (modül + pipe ayar metni + açık/kapalı), olay logu, giriş logu, IP–üye, engel, beyaz liste, dosya hash. Ayarlar kurulumda doldurulur; güncelleme eksik anahtar ekler (proxy varsayılan kapalı, autoblock kapalı, içerik kalkanı, kayıt sonrası işlem).
Nonce: hardcoded sır yok, SECURE_AUTH_KEY.
IP: trust_proxy ve ek CIDR; Cloudflare arkasında DLE’nin kendi IP’si yanlışsa bunu aç.
Panel sekmeleri
Navbar, ShieldTab, çoğu div gizli — syshealth ile aynı fikir. tab= harf/alt çizgi, yoksa dashboard.
- Panel — 24s olay, engellenen bot, çoklu üye IP, aktif IP engeli; 7 günlük kutu; son 10 olay; “Otomatik Engeli Tara”
- Bot Koruması — giriş honeypot / zaman / JS
- Kayıt Kalkanı — geçici e-posta listesi indir, kayıt olayları
- Üye Havuzu & Klonlar — parçalı geri tarama, hayalet sil, sayaç onar, CSV (max 20.000), aynı IP, silme talebi, hızlı profil
- IP Analizi
- WAF log
- Admin Guard log
- Spam ve İçerik log
- Dosya bütünlüğü — tarama, kabul, tümünü kabul
- Tüm loglar — IP / tarih süzgeci
- Ayarlar — her modül switch + alanlar, CSRF, “bu IP’yi beyaz listeye al”
Bot / giriş
Honeypot doluysa bot. Zaman tuzağı: nonce yok + çerez de yok = DLE başarısız girişte tüm çerezleri siliyor, “sayfayı yenile”, brute sayacına yazılmaz (soft). Çerez var imza bozuk = sahte, sert. 2 saniyeden hızlı veya 24 saatten eski yine. JS çerezi yoksa (nonce varken) yine yumuşak yenile. Hak: varsayılan 5 hata / 60 dk; brute_force satırları sayılmaz yoksa her deneme süreyi uzatır.
WAF
GET+POST düzleştirilir, yüzde kodu çözülüp ikinci kez bakılır. Parola alanları atlanır. Serbest metin (yorum, haber gövdesi, xfields…) sıkı kalıba takılır, gevşek kalıba takılmaz — yoksa kendi makalen WAF loguna düşer. id / do / cat gibi alanlarda gevşek de var.
Sıkı taraf: sorgu birleştirme, tablo düşürme/değiştirme ifadesi, uyku/benchmark, şema adı, dosyaya yazma. Gevşek: klasik enjeksiyon cümleleri, ***ik protokolü, gömülü çerçeve, üst dizin, sarmalayıcı protokol. UA: bilinen tarayıcılar + bad_ua_extra (virgül, # ve parantez yok). Metot: GET POST HEAD dışı 403. Cevap: “Guvenlik kurali ihlali…” + tip. Logda payload kısaltılır (300 karakter), önem 3.
Haber yazarken XML’deki kurulum SQL’sini, birleştirme cümlelerini, ***ik etiketini gövdeye yapıştırma — bu sitenin kalkanı tam da ona bakıyor.
Admin Guard
Beyaz liste anahtarı açık ve listede en az bir IP varsa listedekiler dışında panel 403. Liste boşsa kilitlenmez — önce “bu IP’yi ekle”, sonra anahtarı aç. 15 dk / 5 hatalı admin giriş → 429. Log saklama günü (30): eski satırlar parça parça silinir, süresi bitmiş engeller kalkar. Panel açılışında 1/5 ihtimal temizlik.
Otomatik engel kapalı gelir. Açınca önem 3 WAF kayıtları (varsayılan 24s / 5 isa***) IP’yi shield_blocks’a yazar. Dashboard düğmesi aynı tarama.
Spam, içerik, risk
Yorum: honeypot, http(s) link sayısı (3), kelime listesi. Risk motoru eşiği 40: üstü DLE onay kuyruğu, grup 1 ve beyaz liste muaf.
İçerik kalkanı (3.2): ön yüz haber ekleme + panel ekle/düzenle. CJK oranı (30, 0=kapalı — CJK dilinde kapat), haber link (5), kelime, muaf grup (varsayılan 1). Grup 1 ve muaf atlanır.
Kayıt
Honeypot, zaman (min 5 sn), geçici e-posta (indirdiğin cache + ek alan adları), IP başına 3 / 24s, StopForumSpam kapalı (açınca zaman aşımında kayıt geçer), proxy başlığı kapalı (VIA vs.; HTTP_FORWARDED sayılmaz).
Kayıt sonrası: kapalı / karantina / yasak. Eşik 60. Karantina grubu 0 ise DLE’nin kayıt grubu — etkisiz; yetkisiz grup id ver. Yasak DLE ban tablosuna yazılır, banned/usergroup önbelleği silinir.
Liste: Kayıt Kalkanı sekmesi “Listeyi İndir” → engine/cache/system/shield_disposable.cache. Cron haftada bir, düğme TTL’yi atlar.
Dosya bütünlüğü
Yollar engine/, templates/; uzantı php,tpl,phtml. cache ve data taranmaz (eski kayıtlar da düşer). Symlink kök dışına çıkmaz. İlk tarama baseline, alarm yok. Sonra yeni / değişti / silindi. Hash aynıysa sen “kabul” deyene kadar durum durur. Marker: engine/cache/system/shield_integrity.last — her satırı her seferinde güncellemez. Cron aralık 86400 sn.
Üye havuzu
Sayfa açılışında tam tarama yok. AJAX parça: 500 üye / 1000 yorum. Hayalet: 180 gündür yok, 0 haber 0 yorum. CSV hash’li. Aynı IP min 2. Silme talebi onay/red (PM). Hızlı profil: id, ad, e-posta, şifre, imza.
IP tracker girişte yazar; küme min_users.
Dikkat
Yalnız beyaz listeyi doldurmadan açma. admin_bypass ön yüz yönetici gezintisini taramanın dışına atar. Serbest metin listesine kendi xfield adını eklemezsen haber kaydı 403 olabilir. Bot kalıbı yorum/kayıt formunu 2–5 sn bekletmeden göndereni keser. Eklenti silince log da gider.