2015-01-24 27 views
5

Herkes gibi, WordPress sitemizde spam sorunları yaşıyoruz. Her ay önemli miktarda trafik alıyoruz ve garip bir konuyla karşılaştık. Contact Form 7 ile Really Simple Captcha eklentisini kullanıyoruz ve her gün hâlâ geçmekte olan bir avuç vakası dışında çoğu yerde (neredeyse tüm spam'leri kesiyor) harika çalışıyor. Elimizdeki form, üstbilgideki bir bağlantının üzerine geldiğinizde görünen bir iletişim iletişim formudur. Temelde sitede her sayfada var.WordPress Spam açık? Action = register URL

Gönderimden aldığımız e-postada, iletinin altta yazdırılmakta olduğu URL'ye sahibiz. Başarılı spam mesajlarının hepsinin ortak olduğu tek şey, gönderdikleri URL'lere "? Action = register" eklenir. Gönderilen bağlantıya gidersem ve URL'nin sonuna eklediğimde, form ve CAPTCHA hala çalışır (yani CAPTCHA'yı yanlış yazdığımda beni engeller). Yani bu garip.

"? Action = register" öğesinin, kullanıcıların siteye kayıt olmaları için genellikle wp-login.php dosyasına eklendiğini biliyorum. Ayrıca orada bir eklenti olduğunu biliyorum (https://wordpress.org/plugins/custom-registration-link/) bir dereceye kadar düzeltmek ama eklenti çok modası geçmiş ve sadece kayıt bağlantıyı değiştirmek için (aynı zamanda spam önlemek için).

Sitemize kayıt işlemini durdurduk, çünkü eğer biz bunu çözmek için kullanabileceğim bir çift yamayı bilmemiz gerekiyorsa kullanıcıları elle giriyoruz ($ _GET ['action'] için ayarlandığında insanları yeniden yönlendirin örnek), ancak bunun neden olabileceğini söylemiyor. Sadece bir GET değişkeniyle herhangi bir güvenlik açığı nasıl olur?

+3

Bir bağlantı, kod veya daha fazla bilgi ... olmadan, bu soru yanıt vermek için çok geniş. – rnevius

+0

yönlendirme $ _GET ['eylem'] gerçek kayıtları da doğru yönlendirebilir? Aldığınız spam, manuel captcha gönderimlerinden olabilir. Spam'i durdurmak için Honeypot yöntemini denediniz mi? – Karthik

+0

Bu parametre nedeniyle ek bir güvenlik açığı yok.Yönlendiren URL’nin (iletinin geldiği URL’nin) sahte olması çok olasıdır. –

cevap

-3

Spam yapanları caydırmak için birçok teknik var, hiçbiri% 100 etkili değil. Bazıları kolay, ancak bununla ilgileniyorsanız (tüm Avrupalıların olması gerektiği gibi) erişilebilirlik sorunlarını sunabilir. Bazıları oldukça detaylıdır ve yanlış kullanıcıları engelleyerek yanlış pozitiflere yol açabilir. Tekniklerin bir birleşimini uygulayabilirsiniz, ancak çok sayıda yaklaşım sayfa yüklerini yavaşlatabilir.

Varolan bir eklentiyi kullanmanın en kolay yolu, ancak makul bir kod yazabilir ve zaman ayırmaya istekli iseniz, bence çeşitli tekniklerin denemesini ve spam yapanları karıştırdığını düşünüyorum. Özel ilgi alanına sahip olmanız durumunda dikkat çekici şekilde etkili olan bir teknik, kayıt ettiricilerin hedef kitlenizin kolayca yanıtlayabileceği, ancak Google'a göre gönderilemeyeceği bir soruyu doğru bir şekilde yanıtlamasını gerektirmektir. Soruların zaman zaman döndürülmesi ve değiştirilmesi gerekiyordu, çünkü bu spam'ların çözülmesinde belirli bir neşe çeken spam spam'ının yüzde bir kısmını insan spam gönderen insanlar var. Bir kez yaptıkları zaman, kohortlarına övünürler, sonra her spammer cevabı öğrenir.

Aşağıda bağlantılar
http://w3guy.com/wordpress-plugin-combat-stop-spam-bot-registration/

https://wordpress.org/support/topic/anti-spam-registrations size yardımcı olabilecek

bir tane daha çözümü var DÜZENLEME. URL'yi doğrudan takip eden kullanıcıları aşağıdaki htaccess ile durdurabilirsiniz.

RewriteCond %{REQUEST_URI} "^/wp-login.php$" [NC] 
RewriteCond %{QUERY_STRING} "action=register" [NC] 
RewriteCond %{HTTP_REFERER} "!^http://([^.]+.)?domain.com/.*$" 
RewriteRule (.*) "/wp-login.php?" [L,R] 

Bunun size yardımcı olacağını düşünüyoruz.

+1

Wordpress forumlarında sadece [başka bir kullanıcıdan gelen yorum] (https://wordpress.org/support/topic/anti-spam-registrations#post-5541652) kopyalayıp yapıştırdınız! Bu bir cevap değil. –

+0

@AlanMachado Evet, bunu yaptım, ama lütfen bana bir kopya macun tarafından yanlış cevap vermemi söyler misiniz? eğer öyleyse, lütfen kopya üzerine yapıştırılmış olabilecek ve oylama yapabileceğiniz çok sayıda cevap olup olmadığını kontrol edebilirsiniz. Bence SO'nun temel meselesi, sorunun çözülmesinde ya da sorunun nereden geldiğinden veya nasıl geldiğinden bağımsız olarak çözülmesinde yardımcı olabilecek daha iyi bir cevap vermesidir. Ben de bunu yaptım. ;) – urfusion

+0

Ve b * tthurt dışında meşru bir cevabı düşürdü. Bu profesyonel. –