Robotlar CAPTCHA'ları nasıl yenebilir?


84

Bir web sitesi e-posta formum var. Spamların robotlardan korunmasını önlemek için özel bir CAPTCHA kullanıyorum. Buna rağmen hala spam alıyorum.

Neden? Robotlar CAPTCHA'yı nasıl yendi? Bir çeşit gelişmiş OCR kullanıyor mu, yoksa sadece depolandığı yerden çözümü mi alıyorlar?

Bunu nasıl önleyebilirim? Başka bir tip CAPTCHA ile değiştirmeli miyim?


E-postaların formdan geldiğinden eminim, çünkü form iletilerini sunan e-posta göndericimden gönderilir. Ayrıca harf stili aynıdır.

Kayıt için PHP + MySQL kullanıyorum, ancak bu soruna bir çözüm aramıyorum. Robotların bu teknolojileri nasıl attığını genel durumla ilgilenmiştim. Ben sadece bu durumu bir örnek olarak söyledim, böylece ne istediğimi daha iyi anlayabilirsiniz.


86
Sorunuza cevap vermek istiyorum: İnsanlar CAPTCHA'yı nasıl yenebilirler: daha sonra çoğu zaman üstesinden gelmek beni defalarca zorlamaz.
Pieter B

14
Biri bu sorunun bir zayıf oyu hakettiğini düşünüyorsa, en azından nedenini açıkla.
totymedli

10
@Blrfl, bunun konu dışı olduğunu anlamıyorum.

47
Sorunuzu yanıtlamamızı istiyorsanız, önce bir robot olmadığınızı kanıtlayın.
Pete Kirkham

7
@Blrfl Bununla birlikte, kaliteli yazılım geliştirme ile ilgili her şeye sahiptir.
Izkata

Yanıtlar:


72

CAPTCHA’dan geçmenin en kolay iki yolu:

  • İnsan çiftliklerini kullanın, örneğin ProTypers'in yaptığı gibi insanlardan CAPTCHA'ları para için doldurmalarını isteyin .

  • Bir OCR kullanın.

Ayrıca, birinin CAPTCHA'yı atlamasına izin veren CAPTCHA mekanizmasının kendisinde veya çevresindeki uygulamada bir hata olabilir.

Bu arada, W3C makalesi CAPTCHA'nın Erişilemezliği: Web'de Görsel Turing Testlerine Alternatifler, CAPTCHA'ların nasıl tehlikeye girebileceğini açıklıyor:

[...] Sisteme belgelenen ilk saldırılardan biri, CAPTCHA görüntülerini yetişkin bir Web sitesine erişimle ilişkilendiren ve böylece kimlik doğrulamasını kırmak için ücretsiz insan emeği alan bir Carnegie Mellon öğrencisi oldu. [...]

Dış projeler [...], optik karakter tanıma kullanarak, sistemlerin çoğunun% 88 ile% 100 arasında hassasiyete sahip bilgisayarlar tarafından yenilebileceğini gösteren metodolojiler ve sonuçlar göstermiştir.

Peki bu saldırıları nasıl önleyebilirsiniz?

  • Özel olarak uygulanmış CAPTCHA'nız varsa, reCAPTCHA gibi popüler olanınıza geçmeyi deneyebilirsiniz .

    Bu, kendi CAPTCHA'nızın OCR için çok kolay olması durumunda veya başarılı bir şekilde sömürülen bir hata olduğunda yardımcı olacaktır.

  • Popüler bir CAPTCHA mekanizması kullanıyorsanız, ısmarlama birine veya başka popüler bir kişiye geçmek OCR'yi önleyebilir.

Teknik olarak hiçbir şey insan çiftliklerini engelleyemez: birkaç karenin çok hızlı bir şekilde farklı metni gösterdiği ve yalnızca bir karenin kullanıcı tarafından görülebildiği hareketli GIF'ler oluşturabilir, metni her yöne deforme edebilir veya bükebilir ya da önlemek için yeni, alternatif yollar bulabilirsiniz Metni tanımaktan OCR'ler, hala CAPTCHA'ları çözmek için para ödeyen insanlar bunları başarıyla çözecektir.

Görsel CAPTCHA'dan sese geçmek isteyebilirsiniz (zaten ikisini birden kullanmıyorsanız ve yapmanız gerekirse), ancak bu, işitme bozukluğu olan kullanıcıların uygulamanızı kullanamayacağı anlamına gelir.


Etki alanlarına özgü CAPTCHA'larda yorumlardaFormsDesigner ve GalacticCowboy'dan bahseden sinirli . Bunların ne kadar etkili olduğu konusunda bazı materyaller bulmaya çalıştım, ancak başarılı olamadıkça, işte benim kişisel görüşüm:

  1. Etki alanına özgü CAPTCHA'lar, gerçek kullanıcılar cevap hakkında hiçbir fikriniz olmadığında çok sinir bozucu olabilir.

    Örnek: Film odaklı bir web sitesindeki bir sayfayı ziyaret ediyorum. Bir makalede bir hata olduğunu fark ettim ve yazara hatayı bildirmek için yorum yapmak istiyorum. Yorumlar formu, bir CAPTCHA mekanizması olarak, bir fotoğrafta gösterilen aktrisin adını vermemi istedi. Bu aktrisin kim olduğu hakkında hiçbir fikrim yok, bu yüzden yapabileceğim tek şey web sitesinden ayrılmak (veya sonraki iki dakikayı Google Görseller’i kullanarak geçirmek).

    Başka bir örnek: bir web sitesi "gizemli" nin eşanlamını vermeyi ister. İyi derecede İngilizce bilen, engelli olmayan bir kişi için kulağa kolay geldiği için, İngilizce'yi iyi konuşamayan insanlara veya bazı gelişimsel engelli insanlara, eş anlamlı ya da zıt bulmanın gerçeğini saymazsak, dış yardım olmadan çözmek mümkün olmazdı. her zaman zor.

  2. Bu alana özgü sorunların çoğu programatik olarak çözülebilir. Verdiğim her iki örnek de harici kaynaklar kullanılarak kolayca çözülebilir (Google Görseller ve Eşanlam Sözlük). FrustratedWithFormsDesigner tarafından örnek olarak verilen transistörlerle ilgili olan daha iyidir, ancak yine de ısmarlama bir botla çözülebilir.

  3. Hiçbiri insan çiftliklerine direnemez.

  4. Verileri üretirler, tıpkı sıradan metinler gibi CAPTCHA'lar bozuk karakterler çizer; bu durumda, üretim algoritması botları ayarlamak için kendini kullanabilir ya da reCAPTCHA'nın taranmış kitaplardan metin aldığı gibi bir yerde veri bulur , bu durumda bot bu verileri ona karşı kullanın (örneğin, bir sözlükten kelimeler alırsanız, kullanıcıdan eş anlamlılarını girmesini isteyince, bot aynı% 100 başarı elde etmek için aynı sözlüğü kullanabilir).


4
CAPTCHA'nın çalışma garantisi olmadığını belirten +1
Neil

8
Etki alanına özgü bazı yeni başlıklar görmüştüm. Onlardan biri direnç görüntülerini gösterdi ve kullanıcı direnci girmek zorunda kaldı (direnç renk bantlarını okumayı bilmeyen insanlar için bir yardım sayfasına bağlantı vardı). Bir başkası küçük bir müzik nota parçacığı görüntüsüne sahipti ve kullanıcının belirli notlar ("sadece ikinci akordaki notlar" gibi) girmesi gerekiyordu. Hala kumar oynuyorlar ama spam gönderenlerin maliyeti buna değmeyebilir.
SinirliFormsDesigner ile

2
@MainMa, captchas'ı oldukça hızlı bir şekilde döken bir bot tasarlayan biri hakkında bir yerde bir teknoloji raporunda bir yazı vardı, çünkü görselliği görmezlikten geliyordu ve bunun yerine ses ipucunu bununla yorumluyordu; Yine de kullanıcılar için daha da zor hale getiren bir ses olanı
RhysW

@RhysW: Bahsettiğim W3C makalesinde ayrıca görüntülerden sese geçmenin bot problemini çözmediği ve botlar için işleri daha da kolaylaştıracağı belirtiliyor.
Arseni Mourzenko

24
İnsan çiftlikleri. Neden Matrix'i hayal ediyorum?
LarsTech

37

Ekleme MainMa cevabı ...

Spam gönderenler, başkalarını CAPTCHA'yı kendileri için yapmaya kandırırlar

Temel olarak, spam gönderenler bir warez sitesi veya üzerinde CAPTCHA bulunan bir porno sitesi kursa da gerçek bir CAPTCHA değildir. Bir bot, CAPTCHA'yı spam yapmak istedikleri (ya da istismar ettiği) siteden çeker ve daha sonra bunu warez sitesinde veya birinin kendileri için tamamladığı bir porno sitesinde görüntüler. Sonra CAPTCHA değeri tekrar botlarına aktarılır ...

Spamcılar hakkında biraz daha

ReCAPTCHA kullanıyorum ve temelde değersiz olduğunu buldum. Ayrıca reCAPTCHA’yı geçen spam’i yakalayan özel bir spam filtresi kullanıyorum ve yanlış pozitifler için birkaç günde bir gözden geçirmem gerekiyor.

Benim forumum da özel olarak yazılmış ve çok az trafik alıyor. Kimsenin siteme belirli bir saldırı düzenlediğini sanmıyorum. Yine de, spam filtrem günde 2k spam mesajı alıyor! Sitede hiç kimse görüntülenmiyor. Spam gönderenler beni spam göndermekten fayda görmezler, ancak yine de yaparlar.

Spam girişimlerindeki kalıpları görebiliyorum çünkü hepsini kaydettim. Size şunu söyleyebilirim: CAPTCHA'dan nasıl geçtiklerini bir kenara bırakarak, spam göndericileri, doldurulmuş alanları ve bu alanları dolduran veri ve kelime türlerini değiştiren kaba bir kuvvet tekniği kullanıyor. Görünüşe göre bunu çok ucuz yapıyorlar (CAPTCHA'yı atlamak da dahil), yaptıkları işin işe yarayıp yaramadığını görmek için ayrı ayrı sitelerin analizini bile yapmıyorlar.

Yıllar geçtikçe, sitemi, her ay yalnızca bir ay geçmesi için günde binlerce spam iletiyle hedeflemeye devam ediyorlar ve bir gün sonra da el ile siliniyor. Bu spam için ucuz!

Bu gelecek yıllar için bir savaş olacak. Özellikle benim gibi küçük tek kişilik moderatör siteleri için.


6/22/2017 EDIT : Bu yazı google reCAPTCHA'yı tamamen yenilediğinden ve bu yazıdan itibaren kusursuz çalıştığını eklemek istiyorum. Her ne kadar biraz yanlış pozitif olduğundan şüphelensem de, kullanıcılar benim için bir acı çektikten sonra kullandığımdan beri biraz düştü. 2 büyük değişiklik

1) Metin yerine Görüntüler kullanıyorlar (Yani OCR artık yok)

2) reCAPTCHA kullanan tüm sitedeki kullanıcılar etkinliği ile birleştiriyorlar. Bu nedenle, reCAPTCHA'yı A sitesinde geçerseniz, B Sitesine gidin, sizden insan olduğunuzu kanıtlamanız bile istenmeyebilir! Ayrıca (bence) çok fazla sitede çok fazla reCAPTCHA vuruyorsanız sizi de işaretleyecektir. Kullanıcı aktivitesine bağlı olarak başka türlerde AI kullandığından da eminim.

Eminim ki spam gönderenler de bunu yenene kadar ...


Bu muhtemelen küçük bir web sitesi için reCAPTCHA'nın en güçlü argümanıdır: Google, mevcut spam tekniklerine ayak uyduracak daha fazla kaynağa sahiptir.
Stephen C. Steel

15

Hiç kedi köpeği captcha kullanmayı denedin mi? Standart captcha olan ve değiştiren bir forumum var ve o zamandan beri misafir spam'im yok.görüntü tanımını buraya girin


12

Sitenizin sömürülen bir ultra ucuz işgücü tarafından hedeflenmesi ve bir insanın CAPTCHA ifadelerinize manuel olarak girmesi mümkündür.

Kullandığınız çözüm aşırı derecede karmaşık değilse, saldırganınızın görüntü tanıma işlemi gerçekleştirmesi mümkündür.

Ayrıca, kodunuzda bir yerde CAPTCHA'nın atlanmasına izin veren bir hata olabilir.

Bir robotun CAPTCHA'nızı dövdüğünü varsaymayın. Sisteminizi bütünsel olarak düşünün ve tehlikeye atılıp atılmadığını görün.


İnsanların kolayca çözemeyeceği görüntü ve CSS şemalarını birleştirirdim.
Erik,

2
İki kelime ... Mekanik Türk. Amazon, Captcha'yı inanılmaz derecede ucuz bir çaba sarfetti.
Michael Brown

10

Diğerleri spam gönderenlerin CAPTCHA'ları nasıl dolaştırdığını tartıştı. İşte bu nasıl önleyebilirim hakkında bazı ipuçları :

Not Gümüş mermi yoktur ve spam gönderenler oyundan 1 adım önde görünmektedir. Bu yüzden çoklu tekniklerin bir kombinasyonunu kullanmak zorunda kalacaksınız.

  1. Bal kabı formu kullanın
  2. Bir CAPTCHA veya Mantık sorusu kullanın. "Elma, balık, el, altı - bunlardan hangisi vücut parçası" gibi temel sorular
  3. Bir gecikme var. Form sayfanın yüklenmesinden itibaren 5 saniye içinde gönderilirse isteği yoksay, çoğu robot bir saniyeden daha az bir sürede gönderir
  4. IP adresinin izlenmesi - web sitenizi bir beyaz listede olmayan (google, bing) olmayan bir örümceğin taradığını ve ardından IP adresini yasakladığını fark ederseniz. Tercihen bu, kod / yazılımda dinamik / otomatik olacaktır.

6

Diğer cevapları yansıtmak için, muhtemelen onlar için captcha'lara girmek için insan çiftliklerini kullanan botlarla karşılaşıyorsunuz.

Geçenlerde, istemci tarafında JavaScript gerektirerek spam botlarını engelleyen bir teknik (ve beraberindeki Drupal modülünü piyasaya sürdüm) açıkladım. Bildiğim kadarıyla, bu kodu kullanan tüm sitelerde% 100 verimlilikle çalıştı. Buradaki düşünce, AJAX'ı benzersiz bir karma oluşturmak ve onu diğer form verileriyle birlikte göndermek ve ardından form gönderildikten sonra arkadaki aynı hastayı hesaplamak ve iki değeri karşılaştırmaktır.

Blog postalarımdaki tüm ayrıntılar (tesadüfen, PHP + MySQL kullanarak bahsettiğinizden beri, bunlar orada açıklanan teknolojilerdir) - Modül sürümü: Badbot; spam ortadan kaldırılıyor ...


1
Yaygın hale gelinceye kadar çalışacak ve spam yapan kişi başsız tarayıcı kullanacaktır.
Xavier Combelle

1
Başsız bir tarayıcı kullanmak bir şeyi nasıl değiştirir?
Tatiana Racheva

-2

Siteniz twitter ise ve birileri özel olarak hedeflemişse (onu bulmak yerine bot)

Aksi halde, formunuzu form gibi görünmüyorsa değer de olabilir. 1. Tür, ad veya yer tutucuda 'e-posta' olan alanlar yok, tüm alanlar için kısa veya yanıltıcı adlar kullanın. 2. Gerçek bir html form elemanı kullanıp gönder butonunu kullanmayın. Bunun yerine normal bir div tıklamasıyla göndermek için AJAX kullanın (bir düğmeye benzeyecek şekilde stillendirilmiş). 3. onclick olayını html'ye koymayın, JavaScript'e bir dinleyici ekleyin. 4. Herhangi bir ipucunu doldurmak için JavaScript'i kullanın 'e-posta adresinizi buraya girin', botlar sayfalar arasında gezinirken aslında JS'yi tetiklemeyebilir (bundan emin değilim, ama yine de yapıyorum).

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.