Kötü amaçlı botların spam göndermesini önleme


15

Kötüye kullanım nedeniyle kapalı bir siteyi hatırlıyorum ve botların bir parçası olup olmadığını merak ediyorum. Bot siteme bir şey POSTing ise onunla mücadele yolları nelerdir? Bazı çerezleri ayarlamayı ve çerezleri JavaScript + zaman damgası ve işaretiyle değiştirmeyi düşünüyordum (bu yüzden dünkü çerezler bugün ve gelecek hafta kullanılamaz).

Çoğu insanın / botların botlarında JavaScript'i etkinleştirmek yerine sadece başka bir site kullanacağından eminim.

Başka ne yapabilirim? Günlük POST sınırı ve sadece rastgele spam gönderen genel botlar için bir bal küpü düşünüyorum.

Yanıtlar:


13

Aşağıdakiler de dahil olmak üzere birkaç şey yapabilirsiniz:

  1. Sadece botların göreceği sahte bir alan koymak. Daha sonra bu alan formun geri kalanıyla birlikte gönderilirse, göz ardı edebilirsiniz (ve isterseniz bunları yasaklayabilirsiniz). Gizli bir bağlantıyı izleyen kötü botları da yakalayabilirsiniz .

  2. ReCAPTCHA gibi bir CAPTCHA kullanın

  3. Kullanıcının 5 + 3 gibi bir soruya cevap vermesini gerektiren bir alan kullanın. Herhangi bir insan cevap verebilir, ancak bir alan alan adlarını temel alan alanları otomatik olarak doldurduğundan bir bot ne yapacağını bilemez. Böylece bu alan yanlış veya eksik olacaktır, bu durumda gönderim reddedilecektir.

  4. Bir token kullanın ve bir oturuma koyun ve forma ekleyin. Jeton formla gönderilmezse veya eşleşmezse, otomatiktir ve yok sayılabilir.

  5. Aynı IP adresinden tekrarlanan gönderimleri arayın. Formunuz çok fazla istek almamalı, ancak aniden bir bot tarafından vuruluyorsa ve IP adresini geçici olarak engellemeyi düşünmelisiniz.

  6. Askimet kullanın . Spam'i tanımlamak harika.


5
+1 - Ve ideal olarak, yukarıda listelenen önerilerin bir kombinasyonunu kullanıcı dostu bir şekilde uygulayacaksınız (örneğin, bir kullanıcının Javascript devre dışı bırakılmış olması ve bu nedenle Javascript tabanlı kimlik doğrulamasını geçememesi durumunda kullanıcıya bir CAPTCHA sunun)
danlefree

6

John Conde pek çok iyi yaklaşımın ana hatlarını çiziyor. Anti-bot / anti-spam tekniğini seçmeyle ilgili sorun, etkinliği ve kolaylığı dengelemektir. Her yorum veya mesaj göndermek istediğinizde bir CAPTCHA doldurmak gerçekten zor olacaktır, ancak kayıt sırasında yalnızca bir CAPTCHA'ya ihtiyacınız varsa, bazen bu spam göndericileri caydırmaz.

Pasif tekniklerin bazıları iyi bir alternatiftir, çünkü herhangi bir insan eylemine ihtiyaç duymazlar. Sorun, botların gittikçe daha karmaşık hale gelmesidir ve eğer botlar CAPTCHA'ları çözebilirse, JS ve CSS'yi kesinlikle işleyebilirler. Dolayısıyla, bot-trap alanlarınızı gizlemek için daha az belirgin CSS kullanmak gibi biraz yaratıcılık yapmanız gerekir.

Ancak sorunuza dayanarak, muhtemelen amacın bot geçirmez bir site oluşturmak değil, sadece bot kullanıcılarının diğer daha kolay hedefleri seçeceği yeterince caydırıcılık yaratmak olduğunu fark ettiğinizi düşünüyorum. Dolayısıyla burada yapılması gerekenler siteden siteye değişecektir ve büyük olasılıkla bazı deneme yanılma testleri gerektirecektir. Önce en az rahatsız edici teknikleri denerdim.

Son olarak, sitenizin spam'sini kaldırmanın başka bir yolu, bot tarafından gönderilen yorumları veya üzerinden gönderilen spam iletileri manuel olarak göndermek için akran denetimini kullanmaktır.


akran denetleme fikrini açıklayabilir misiniz? Bu, normal kullanıcıların moderatör hakları edinmesini içeriyor mu veya bunu nasıl hayal etmeliyim?
0xC0000022L

@STATUS_ACCESS_DENIED: geç cevap için özür dileriz, ancak akran moderasyonu temelde kullanıcıların bir tür olumlu veya olumsuz geri bildirim vererek sitedeki içeriği denetleyebileceği digg, slashdot, stackexchange vb. Böylece sistemi, bir kullanıcı bir içerik hakkında olumsuz geri bildirimde bulunduğunda otomatik olarak gizlenecek veya incelenmek üzere işaretlenecek şekilde otomatikleştirebilirsiniz. StackExchange gibi sitelerde, kullanıcılar yorumları / yanıtları spam olarak işaretleyerek yöneticilerin dikkatine sunabilir. Bu, ücretli yöneticilerin yapması gereken işi azaltır.
Lèse majesté

Teşekkürler. Bu, elbette, yalnızca geri bildirim vermek için yeterli kullanıcının rahatsız edilebileceği yüksek trafikli sitelerde çalışır;)
0xC0000022L

1

John Conde'un # 1) 'de belirttiği gibi ve sizin de bahsettiğiniz gibi, bal küpü çoğu durumda ve çoğu web sitesi için çok iyi çalışabilir. Hiç bir bot tarafından yapılırsa, John'un da bahsettiği diğer yöntemlerden birini yapabilirsiniz. Ancak dürüst olmak gerekirse, siteniz düşük veya ortalama trafikte bu hile yapmalıdır.

Örnek, favorilerimden biri:

<form action="/process-form">
<input name="email" placeholder="Enter Your Email">
<input name="email_address" placeholder="Enter Your Email" style="display:none;">
<input type="submit" value="Submit"></form>

Artık form gönderildiğinde, botların çok yüksek bir yüzdesi hem "e-posta" hem de "e-posta_adresi" ni dolduracak, ancak insanlar yalnızca "e-posta" değil "gördüklerini" e-posta "doldurur. Bu yüzden, / / ​​process-form 'kodunuzda email_address dosyasının doğrulama için boş olup olmadığını kontrol etmeniz yeterlidir.

Basit ve etkili.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.