Wordpress’e kaydolan spam kullanıcıları silmek: msql sorgu, phpmyadmin sorgu silme

WordPress sitenize her gün onlarca veya yüzlerce spam bot kaydı geliyorsa bu sorun hem sunucu performansınızı düşürür hem de veritabanınızı gereksiz yere şişirir. Bu rehberde MySQL sorgusu ve WP-CLI kullanarak mevcut spam kullanıcıları toplu olarak silmeyi, ardından yeniden kayıt oluşmaması için önlemler almayı öğreneceksiniz.

Spam Kullanıcı Kaydı Neden Olur?

WordPress sitenizde kayıt açıksa botlar otomatik olarak sahte hesaplar oluşturur. Amaçları:

  • Yorum spam’i göndermek
  • Backlink oluşturmak (profil URL alanına site adresi girmek)
  • Güvenlik açığı aramak
  • Gelecekte saldırı için yer kazanmak

Spam Kullanıcıları Tanıma

Kullanıcılar sayfasında şüpheli özelliklere sahip hesapları belirleyin:

  • Kullanıcı adında URL, www, http, .com gibi ifadeler
  • Rastgele karakterlerden oluşan e-posta adresleri ([email protected] gibi)
  • Profil URL alanında dolu olan ama hiç içerik üretmemiş hesaplar
  • Aynı gün onlarca veya yüzlerce kayıt yapılmış hesaplar
  • .ru, .cn, .xyz gibi şüpheli domain uzantılarından e-posta adresleri

Silmeden Önce: Veritabanı Yedeği Alın

Toplu silme işlemi geri alınamaz. Mutlaka önce yedek alın:

mysqldump -u db_kullanici -p veritabani_adi > yedek_$(date +%Y%m%d).sql

Veya phpMyAdmin’den Export → Quick → SQL formatında dışa aktarın.

phpMyAdmin ile MySQL Sorgusu

cPanel, Plesk veya DirectAdmin üzerinden phpMyAdmin’i açın. Veritabanınızı seçin, SQL sekmesine tıklayın.

Önce sayıyı kontrol edin (silmeden):

SELECT COUNT(*) FROM wp_users 
WHERE user_url != '' 
AND user_registered > DATE_SUB(NOW(), INTERVAL 30 DAY);

Profil URL’si dolu olanları silin:

DELETE FROM wp_users WHERE user_url != '';

Kullanıcı adında “www” veya “http” geçenleri silin:

DELETE FROM wp_users 
WHERE user_login LIKE '%www%' 
OR user_login LIKE '%http%'
OR user_nicename LIKE '%www%';

Belirli tarihten sonra toplu kayıt olanları silin:

DELETE FROM wp_users 
WHERE user_registered > '2024-01-01' 
AND user_url != ''
AND ID NOT IN (SELECT DISTINCT post_author FROM wp_posts);

Orphan usermeta kayıtlarını temizleyin:

DELETE FROM wp_usermeta 
WHERE user_id NOT IN (SELECT ID FROM wp_users);

WP-CLI ile Silme (Önerilen)

Sunucuya SSH erişiminiz varsa WP-CLI daha güvenli ve kontrollüdür:

Subscriber rolündeki kullanıcıları listele:

wp user list --role=subscriber --fields=ID,user_login,user_email,user_url --format=table --allow-root

Tüm subscriber’ları sil:

wp user list --role=subscriber --field=ID | xargs wp user delete --yes --allow-root

Belirli tarihten önce kaydolanları sil:

wp user list --role=subscriber --field=ID   --user_registered_before="2024-06-01" | xargs wp user delete --yes --allow-root

Spam Kayıt Tekrar Olmaması İçin Önlemler

1. Cloudflare Turnstile veya reCAPTCHA Ekleyin

  • Kayıt formuna CAPTCHA eklemek botların otomatik kayıt yapmasını engeller
  • Cloudflare Turnstile ücretsiz ve kullanıcı dostudur
  • Google reCAPTCHA v3 arka planda çalışarak şüpheli istekleri engeller

2. Kayıt Sayfasını Gizleyin veya Devre Dışı Bırakın

  • Kullanıcı kaydı gerekmiyorsa: Ayarlar → Genel → “Herkes kayıt olabilir” seçeneğini kapatın
  • WPS Hide Login ile kayıt URL’sini değiştirin

3. E-posta Onayı Zorunlu Kılın

  • Kayıt sonrası e-posta onayı isteyen eklentiler kullanın
  • Bu şekilde sahte e-posta adresleriyle yapılan kayıtlar onaylanamaz

4. IP Engelleme

  • Cloudflare Firewall Rules ile şüpheli ülkeleri veya IP aralıklarını engelleyin
  • Wordfence eklentisi tekrarlayan spam denemelerini otomatik engeller

Sonuç

Mevcut spam kullanıcıları temizlemek için MySQL sorgusu veya WP-CLI yeterlidir. Temizlik sonrası CAPTCHA ve kayıt kısıtlaması ekleyerek yeni spam kayıtların önüne geçin. Veritabanı büyüklüğünüz belirgin şekilde küçülecek ve sunucu performansınız artacaktır.

Daha Fazla Göster

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu