Make.com’da Kod Adımı Olmadan CAPTCHA Nasıl Çözülür

Make.com’da bir captcha adımı, senaryonun hiçbir yerinde kod olmadan, üç HTTP modülü ve bir Sleep’ten ibarettir. Doğrulamayı gönderin, bekleyin, token geri gelene kadar yoklayın, sonra onu formla birlikte gönderin. İnsanları asıl durduran şey döngü değildir. Adrestir: bir senaryo Make.com’un kendi bulutunda çalışır, dolayısıyla oradaki 127.0.0.1 sizin masanız değil Make.com’un konteyneridir ve HTTP modülü yalnızca güvendiği bir sertifikaya sahip HTTPS URL'lerini çağırır. Adresi doğru yapın, gerisi on beş dakikalık tıklamadan ibaret.
Neye ihtiyacınız var
- Herhangi bir plandaki bir Make.com hesabı. Burada kullanılan her modül, yerleşik HTTP, Tools ve Flow control uygulamalarında bulunur.
- Kontrol ettiğiniz, internetten erişilebilen bir Windows makinesinde Server modunda çalışan CapSkip.
- O makineyi işaret eden bir hostname ve onun için herkesçe güvenilen bir TLS sertifikası.
- Korumalı formun sayfa URL’si ve sitekey'i.
Local modu ve Server modu şu başlık altında anlatılıyor: bağlantı ayarları. Local modu, otomasyonunuz ile çözücü aynı makineyi paylaştığında doğru seçimdir; bir bulut senaryosunun yapamayacağı şey de tam olarak budur.
Loopback adresi burada neden bir seçenek değil
Make.com senaryoları, dört bölgeden birinde, Make.com’un kendi altyapısında çalışır. Hesabınız us1, us2, eu1 veya eu2 üzerinde bulunur ve giden her istek o bölgenin yayımlanmış çıkış (egress) adreslerinden ayrılır. Bu yolun hiçbir noktası sizin ağınıza dokunmaz; dolayısıyla 127.0.0.1 adresine yapılan bir istek, senaryonuzu çalıştıran konteynerin içinde çözümlenir ve dinleyen hiçbir şey bulamaz.
Yanıt Server modudur ve bu farklı bir ürün değildir. Çözücü yine sizin donanımınızda çalışır, yine çözüm başına ücret almadan çözer ve yine aynı 2captcha uyumlu uç noktaları sunar. Değişen şey, bağlandığı arayüzdür: yalnızca yerel cihaza yanıt vermek yerine ağınız ya da genel IP’niz üzerinden yanıt verir; böylece adrese ve bir anahtara sahip olan her şey onu çağırabilir. Sabit bir genel IP, o adresin ayağınızın altından kaymasını önler.
Yayımlanan bu çıkış adresi listesi ters yönde de işe yarar. Make.com giden adresleri bölge bölge belgeler; böylece güvenlik duvarında çözücünün portuna yalnızca kendi bölgenizin adreslerinin geçmesine izin verip geri kalan her şeyi düşürebilirsiniz. Make.com tarafındaki gelen adresler dinamiktir ve yayımlanmaz; bu yüzden onları sabitlemeye çalışmayın.
Çözücüye Make.com’un kabul edeceği bir adres verin
Herkesi yakalayan gereklilik budur ve iki kez okumaya değer. HTTP modülü, URL alanını bir HTTPS uç noktası olarak belgeler ve doğrulayamadığı sertifikaları reddeder. Kendinden imzalı bir sertifika yeterli değildir; düz HTTP üzerinden 8080 portundaki çıplak bir IP adresi de değildir.
Bu yüzden çözücünün önüne bir TLS sonlandırıcı koyun. Windows'ta en kısa yol Caddy’dir; çünkü gerçek bir sertifikayı kendi başına ister ve yeniler, üstelik yapılandırmanın tamamı tek bir komuttan ibarettir. Önce makineye bir hostname yönlendirin, sonra onu çalıştırın.
# Fronts CapSkip on 8080 with a real certificate for the hostname. # Ports 80 and 443 must reach this machine for the challenge. caddy reverse-proxy --from solver.example.com --to 127.0.0.1:8080
Make.com’a dokunmadan önce bunu kendi makinenizden doğrulayın. curl sertifikadan memnunsa senaryo da memnun olacaktır ve hata ayıklama yüzeyini bir anda yarıya indirmiş olursunuz.
# Submit a reCAPTCHA v2 job. json=1 makes the reply JSON.
curl -s "https://solver.example.com/in.php" \
-d "key=YOUR_API_KEY" \
-d "method=userrecaptcha" \
-d "googlekey=YOUR_SITEKEY" \
-d "pageurl=https://example.com/page-with-recaptcha" \
-d "json=1"
# {"status":1,"request":"2122988149"}Adım 1: CAPTCHA'yı gönderin
Bir HTTP modülü ekleyin ve istek yapan eylemi seçin. Metodu POST, URL'yi de çözücünüzün in.php uç noktası olarak ayarlayın. URL kodlamalı gövde tipini seçin ve beş alan ekleyin; bunlar yukarıdaki curl çağrısının gönderdiği beş alanın aynısıdır: anahtar, metot adı, sitekey, sayfa URL'si ve JSON bayrağı.
Yanıtı ayrıştıran seçeneği açın. O olmadan yanıt tek bir dize olarak gelir ve içinden hiçbir şeyi eşleyemezsiniz. Açıkken bir status ve bir request değeri elde edersiniz; başarılı bir gönderimde request değeri iş kimliğidir.
CAPTCHA türünü seçen şey metot adıdır. reCAPTCHA v2 için userrecaptcha kullanın, v3 için buna version=v3 ekleyin; Cloudflare Turnstile için turnstile, GeeTest v3 için geetest ve satır içi gönderilen bir görsel CAPTCHA için base64 kullanın. Her birinin tam parametre listesi şurada: CapSkip API dokümantasyonu.
Adım 2: yoklamadan önce bekleyin
Tools uygulamasından bir Sleep modülü ekleyin. Bir reCAPTCHA v2 çözümü genellikle on beş ila kırk beş saniye sürer; bu yüzden hemen yoklamak, yalnızca cevabın hazır olmadığını öğrenmek için bir operasyon harcamak demektir. İlk bekleme için yirmi saniye makul bir değerdir.
Sleep, senaryoyu en fazla 300 saniye, yani beş dakika geciktirir ve bir sonraki adımın uzun tek bir duraklama değil de bir döngü olmasının nedeni bu tavandır. Tek bir çözümün ihtiyaç duyduğundan rahatça fazladır, ama onu bilinmeyen sayıda yeniden denemeyi oturup beklemek için kullanamazsınız.
Adım 3: token gelene kadar yoklayın
Make.com’da koşul sağlanana kadar bekleyen bir modül yoktur; bu yüzden yoklama bir Repeater ve bir filtreden kurulur. Repeater, Flow control uygulamasında bulunur ve bir bundle üreticisidir: ona bir başlangıç değeri ve bir tekrar sayısı verirsiniz, o da her biri i adında bir sayaç taşıyan o sayıda bundle üretir. Ondan sonraki her şey bundle başına bir kez çalışır; döngü gövdeniz de budur.
Tekrar sayısını on olarak ayarlayın. Repeater’ın arkasına beş saniyelik ikinci bir Sleep ve 1. adımdaki iş kimliğiyle res.php'yi çağıran ikinci bir HTTP modülü koyun.
# The poll. Same key, the id from the submit, action=get.
curl -s "https://solver.example.com/res.php?key=YOUR_API_KEY&action=get&id=2122988149&json=1"
# Still working:
# {"status":0,"request":"CAPCHA_NOT_READY"}
#
# Done:
# {"status":1,"request":"03AGdBq24PBCbwiDR..."}Şimdi o modülden çıkan bağlantıya bir filtre ekleyin ve yalnızca status değeri 1'e eşit olduğunda bundle'ların geçmesine izin verin. Böylece filtreden sonraki her şey tam olarak bir kez, başarılı olan yoklamada çalışır ve başka hiçbir deneme filtreyi geçemez. Bunun ne yaptığı ve ne yapmadığı konusunda net olun. Repeater, kendisinden istediğiniz her bundle'ı yine de üretir; yani döngü erken bitmez. Erken biten şey beklemedir, çünkü bir yoklama token'ı bulduğu anda token yoluna devam eder. Token, o bundle üzerindeki request değeridir.
API'nin bu tasarımı belirleyen ve gözden kaçması kolay bir özelliği var. Bir sonuç yalnızca bir kez okunabilir; dolayısıyla token'ı size verecek olan tek yoklama, başarılı olan ilk yoklamadır. Onu yeniden almak için res.php'yi ikinci kez çağırmak yerine, doğrudan sonraki adıma eşleyin.
Aynı gönder-ve-yokla yapısı, kod gerektirmeyen her araçta karşınıza çıkar ve farkların tamamı platformun etrafına dayattığı kısıtlardadır. Bu akışın, otomasyon ile çözücünün aynı makineyi paylaşabildiği, kendi sunucunuzda barındırılan sürümü şurada anlatılıyor: n8n CAPTCHA iş akışı kılavuzu. Şekli bir Sleep tavanının değil, bir adım çalışma süresi tavanının belirlediği bir platform ise şurada ele alınıyor: Zapier rehberi.
Döngünün operasyon cinsinden maliyeti
Make.com operasyon üzerinden faturalandırır ve bir operasyon, bir modülün bir bundle üzerinde bir kez çalışmasıdır. Bir tetikleyici ne kadar veri döndürürse döndürsün bir kez sayılır, ama Repeater’ın arkasındaki her modül bundle başına bir kez çalışır; dolayısıyla bir Sleep artı bir HTTP çağrısının on tekrarı, token ikinci denemede gelse bile yirmi operasyon eder. Filtre döngüyü durdurmaz; yalnızca bundle'ların kendisini geçmesini engeller.
Bu operasyon sayısı tipik değil, sabittir ve aşağıdaki iki alışkanlığı edinmeye değer kılan da budur. İlk Sleep’i, cevabın genellikle birinci ya da ikinci yoklamada hazır olacağı kadar uzun tutun; çünkü düşük bir tekrar sayısıyla çalışabilmenizi sağlayan şey budur. Ve tekrar sayısını rahat bir senaryoyu değil, gerçekçi en kötü durumu karşılayacak şekilde ayarlayın: beş saniyelik on tekrar, ilk beklemenin üzerine elli saniye ekler, ki bu v2 için fazlasıyla yeterlidir.
Çözümün kendisi hiçbir şekilde ölçülmez. CapSkip kendi makinenizde çalışır; dolayısıyla bir yeniden denemenin size maliyeti, yalnızca Make.com’un o denemeyi yapan modüller için saydığı operasyonlardır.
Adım 4: token'ı formla birlikte gönderin
Token ile ne yapacağınız hedefe bağlıdır. Bir form gönderiyorsanız üçüncü bir HTTP modülü ekleyin ve token'ı, gerçek form alanlarının yanında g-recaptcha-response alanı olarak dahil edin. Turnstile için alanın adı bunun yerine cf-turnstile-response olur ve çözücü ayrıca kullandığı user agent'ı da döndürür; bir challenge sayfası bunu istek başlıklarında görmekte ısrar eder.
Token'ların süresi dolar ve reCAPTCHA v2 için bu pencere, çözümün tamamlandığı andan itibaren yaklaşık iki dakikadır. Gönderim modülünü filtrenin hemen ardına koyun. Bir kaydı getirmek ya da bir yük hazırlamak gibi yavaş işler, çözüm ile gönderim arasına değil, çözümden önceye aittir. Her iki gönderim biçimi de, zamanlama da şurada ele alınıyor: reCAPTCHA v2 çözücü sayfası.
Sık görülen hatalar ve anlamları
| Gördüğünüz | Neden | Düzeltme |
|---|---|---|
| İlk modülde bağlantı hatası | Çözücü bir loopback ya da özel adreste | CapSkip’i Server moduna alın ve genel bir hostname kullanın |
| Sertifika veya TLS hatası | Kendinden imzalı sertifika ya da düz HTTP | Çözücünün önüne herkesçe güvenilen bir sertifika koyun |
| Yanıt, ayrıştırılmamış tek bir dize olarak geliyor | HTTP modülünde ayrıştırma seçeneği kapalı | Onu açın, sonra alanları yeniden eşleyin |
| ERROR_WRONG_USER_KEY | key alanı boş veya hatalı biçimlendirilmiş | İsteğe eşlenen değeri kontrol edin |
| ERROR_GOOGLEKEY | Çözücüye boş ya da yanlış bir sitekey ulaştı | Sitekey'i canlı sayfadan yeniden okuyun |
| Her tekrarda CAPCHA_NOT_READY | Döngü, çözümün sürdüğü süreden kısa | İlk Sleep’i yükseltin ya da tekrar ekleyin |
| İkinci bir yoklama token olmadan geri dönüyor | Bir sonuç yalnızca bir kez okunabilir | Onu başarılı yoklamada eşleyin, yeniden getirmeyin |
| Form, sorunsuz görünen bir token'ı reddediyor | Gönderim çalışmadan önce süresi doldu | Yavaş modülleri çözümün önüne alın |
FAQ
Senaryo, çözücüye 127.0.0.1 üzerinden erişebilir mi?
Make.com barındırılan bir üründür ve kendi sunucunuzda çalıştırılan bir sürümü yoktur; dolayısıyla bir senaryoda loopback adresi hiçbir zaman size ait olmaz. Otomasyonunuz gerçekten çözücüyle aynı makinede çalışıyorsa, o zaman farklı bir araçtan söz ediyorsunuz demektir. Kendi barındırdığınız bir n8n örneği trafiği yerel cihazda tutar; şunlardan birine karşı yazılmış bir betik de aynısını yapar: CapSkip SDKs.
Çözücüyü internete açmak güvenli mi?
Çözücüye kimin erişebileceğini daraltırsanız güvenlidir. Kimliği doğrulanmamış bir isteğin reddedilmesi için anahtar doğrulamasını açın, tek başına iptal edebilmek için senaryoya kendi anahtarını verin ve güvenlik duvarı kuralını Make.com bölgeniz için yayımlanmış çıkış adresleriyle sınırlayın. Önündeki TLS sonlandırıcı sayesinde anahtar ağdan hiçbir zaman açık şekilde geçmez.
Döngü yerine neden uzun tek bir Sleep olmasın?
Çünkü tek bir Sleep en fazla 300 saniyede tavan yapar ve çünkü tahmin yürütüyor olurdunuz. Sabit bir bekleme ya her çalıştırmada boşa zaman harcar ya da yavaş olanlarda eli boş döner; üstelik her iki durumda da size ikinci bir deneme hakkı vermez. Yeniden denemeleri size Repeater verir ve bir yoklama token'ı bulduğu anda, ki bu genellikle ikinci yoklamadır, token gönderim modülüne ulaşır. Döngünün kendisi yine tekrar sayısının tamamını çalıştırır; dolayısıyla bunun size kazandırdığı şey daha küçük bir fatura değil, güvenilirliktir.
Senaryonun çözüm için proxy'ye ihtiyacı var mı?
Genellikle hayır. Proxy desteği reCAPTCHA, Turnstile ve GeeTest için mevcuttur ve hedef site token'ı onu gönderecek IP'ye bağladığında önem kazanır. Görsel CAPTCHA'lar proxy'yi hiç kabul etmez. proxy parametrelerini ilk HTTP modülüne, yani in.php'yi çağıran modüle ekleyin ve bunu yalnızca, zamanında gelmelerine rağmen token'ların reddedildiğini görüyorsanız yapın.
Kısa özet
CapSkip’i Server moduna alın, önüne bir hostname ve güvenilen bir sertifika koyun, sonra senaryoda dört şeyi birbirine bağlayın: bir HTTP gönderimi, bir Sleep, arkasında bir Sleep ve bir HTTP yoklaması bulunan bir Repeater ve yalnızca tamamlanmış bir sonucun geçmesine izin veren bir filtre. Hiçbir noktada kod adımı yer almaz. Aynı akış Python, Node.js, PHP veya C# ile tek bir çağrıya iner ve bunların hepsi şurada gösteriliyor: CapSkip SDK sayfası.
Bir senaryoyu büyütmeden önce bilinmeye değer. CapSkip, zaten sahip olduğunuz donanımda çalışan bir captcha çözücü olduğundan, çözüm sayısı hiçbir zaman bir faturada görünmez. Hacimle birlikte büyüyen tek şey, Make.com’un çevresindeki modüller için ücretlendirdiği operasyon sayısıdır.
