{"id":933,"date":"2026-09-25T17:43:15","date_gmt":"2026-09-25T17:43:15","guid":{"rendered":"https:\/\/www.vps.tc\/blog\/?p=933"},"modified":"2026-09-25T09:30:50","modified_gmt":"2026-09-25T09:30:50","slug":"captcha-nedir-bot-korumasi-nasil-calisir","status":"publish","type":"post","link":"https:\/\/www.vps.tc\/blog\/tr\/captcha-nedir-bot-korumasi-nasil-calisir\/","title":{"rendered":"CAPTCHA Nedir? Bot Korumas\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r?"},"content":{"rendered":"<div class=\"aiw-summary\" id=\"aiw-ozet\">\n<p class=\"aiw-summary-title\">H\u0131zl\u0131 \u00d6zet &#8211; CAPTCHA ve Bot Korumas\u0131<\/p>\n<p>CAPTCHA, otomatik istekleri insan etkile\u015fiminden ay\u0131rmaya \u00e7al\u0131\u015fan bir do\u011frulama katman\u0131d\u0131r; tek ba\u015f\u0131na g\u00fcvenlik duvar\u0131 de\u011fildir.<\/p>\n<ul>\n<li><strong>Temel ama\u00e7<\/strong> \u2014 Kay\u0131t, giri\u015f ve form g\u00f6nderimlerinde otomasyon maliyetini art\u0131r\u0131r.<\/li>\n<li><strong>\u00c7al\u0131\u015fma bi\u00e7imi<\/strong> \u2014 G\u00f6rev, davran\u0131\u015f, taray\u0131c\u0131 ve oturum sinyallerinden token veya risk karar\u0131 \u00fcretir.<\/li>\n<li><strong>Sunucu kontrol\u00fc<\/strong> \u2014 Token mutlaka gizli anahtarla sunucu taraf\u0131nda do\u011frulanmal\u0131d\u0131r.<\/li>\n<li><strong>Tek ba\u015f\u0131na yetmez<\/strong> \u2014 Oran s\u0131n\u0131rlama, CSRF korumas\u0131, do\u011frulama ve log izleme ile birlikte uygulanmal\u0131d\u0131r.<\/li>\n<li><strong>Eri\u015filebilirlik<\/strong> \u2014 G\u00f6rsel teste alternatif, klavye kullan\u0131m\u0131 ve ekran okuyucu deste\u011fi sa\u011flanmal\u0131d\u0131r.<\/li>\n<li><strong>Yayg\u0131n hata<\/strong> \u2014 Gizli anahtar\u0131 frontend&#039;e koymak veya CAPTCHA&#039;y\u0131 yaln\u0131zca g\u00f6r\u00fcnen forma eklemek korumay\u0131 zay\u0131flat\u0131r.<\/li>\n<\/ul>\n<\/div>\n<p class=\"aiw-lead\">CAPTCHA, insan ile botu kusursuz bi\u00e7imde ay\u0131ran sihirli bir test de\u011fil; otomatik i\u015flemleri pahal\u0131la\u015ft\u0131ran bir risk kontrol\u00fcd\u00fcr. Kullan\u0131c\u0131dan g\u00f6rev isteyebilir veya g\u00f6r\u00fcnmez sinyaller de\u011ferlendirebilir. G\u00fcvenli uygulamada token sunucu taraf\u0131nda do\u011frulan\u0131r ve oran s\u0131n\u0131rlama, oturum g\u00fcvenli\u011fi ile eri\u015filebilir alternatiflerle birlikte kullan\u0131l\u0131r.<\/p>\n<div class=\"aiw-toc\" style=\"border:1px solid #dbe3ea;border-radius:8px;padding:16px 20px;margin:0 0 28px\">\n<p class=\"aiw-toc-head\"><strong>\u0130\u00e7indekiler<\/strong><span class=\"aiw-toc-meta\"> \u00b7 11 dk okuma<\/span><\/p>\n<ol style=\"margin:10px 0 0;padding-left:22px\">\n<li><a href=\"#captcha-neden-kullanilir\">CAPTCHA neden kullan\u0131l\u0131r?<\/a><\/li>\n<li><a href=\"#captcha-nedir-ve-nasil-calisir\">CAPTCHA nedir ve nas\u0131l \u00e7al\u0131\u015f\u0131r?<\/a><\/li>\n<li><a href=\"#hangi-captcha-turleri-vardir\">Hangi CAPTCHA t\u00fcrleri vard\u0131r?<\/a><\/li>\n<li><a href=\"#bot-korumasi-captcha-ile-sinirli-midir\">Bot korumas\u0131 CAPTCHA ile s\u0131n\u0131rl\u0131 m\u0131d\u0131r?<\/a><\/li>\n<li><a href=\"#captcha-dogrulamasi-sunucu-tarafinda-nasil-yapilir\">CAPTCHA do\u011frulamas\u0131 sunucu taraf\u0131nda nas\u0131l yap\u0131l\u0131r?<\/a><\/li>\n<li><a href=\"#captcha-hangi-durumlarda-kullanici-deneyimini-bozar\">CAPTCHA hangi durumlarda kullan\u0131c\u0131 deneyimini bozar?<\/a><\/li>\n<li><a href=\"#captcha-gizlilik-acisindan-ne-ifade-eder\">CAPTCHA gizlilik a\u00e7\u0131s\u0131ndan ne ifade eder?<\/a><\/li>\n<li><a href=\"#wordpress-ve-nginx-uzerinde-captcha-nereye-yerlestirilir\">WordPress ve nginx \u00fczerinde CAPTCHA nereye yerle\u015ftirilir?<\/a><\/li>\n<li><a href=\"#bir-captcha-sistemi-nasil-test-edilir\">Bir CAPTCHA sistemi nas\u0131l test edilir?<\/a><\/li>\n<li><a href=\"#captcha-kullanirken-en-sik-yapilan-hatalar\">CAPTCHA kullan\u0131rken en s\u0131k yap\u0131lan hatalar<\/a><\/li>\n<li><a href=\"#captchayi-yayina-almadan-once-kontrol-edin\">CAPTCHA&#039;y\u0131 Yay\u0131na Almadan \u00d6nce Kontrol Edin<\/a><\/li>\n<li><a href=\"#sik-sorulan-sorular\">S\u0131k Sorulan Sorular<\/a><\/li>\n<li><a href=\"#kaynaklar\">Kaynaklar<\/a><\/li>\n<\/ol>\n<\/div>\n<h2 id=\"captcha-neden-kullanilir\">CAPTCHA neden kullan\u0131l\u0131r?<\/h2>\n<p>Bir giri\u015f formu, yorum alan\u0131 veya kay\u0131t sayfas\u0131 k\u0131sa s\u00fcrede binlerce otomatik istek alabilir. Bu isteklerin tamam\u0131 sald\u0131r\u0131 de\u011fildir; arama motoru taray\u0131c\u0131lar\u0131, mobil uygulamalar ve k\u00f6t\u00fc niyetli botlar ayn\u0131 HTTP protokol\u00fcn\u00fc kullan\u0131r. CAPTCHA, insan etkile\u015fimi hakk\u0131nda ek sinyal toplayarak otomatik i\u015flemleri ay\u0131rmaya, \u015f\u00fcpheli istekleri yava\u015flatmaya veya ikinci bir do\u011frulama istemeye yarar.<\/p>\n<p>CAPTCHA ad\u0131, &#8220;Completely Automated Public Turing test to tell Computers and Humans Apart&#8221; ifadesinin k\u0131saltmas\u0131d\u0131r. Klasik yakla\u015f\u0131mda kullan\u0131c\u0131dan bozuk harfleri okumas\u0131 istenirken g\u00fcncel sistemler davran\u0131\u015f, taray\u0131c\u0131 \u00f6zellikleri, oturum ge\u00e7mi\u015fi ve risk puan\u0131 gibi sinyalleri birlikte de\u011ferlendirir.<\/p>\n<p><strong>Ne yap\u0131lmal\u0131<\/strong> &#8211; CAPTCHA&#8217;y\u0131 tek savunma katman\u0131 de\u011fil, oran s\u0131n\u0131rlama, oturum g\u00fcvenli\u011fi ve sunucu taraf\u0131 do\u011frulamayla birlikte \u00e7al\u0131\u015fan bir kontrol olarak konumland\u0131r\u0131n.<\/p>\n<h2 id=\"captcha-nedir-ve-nasil-calisir\">CAPTCHA nedir ve nas\u0131l \u00e7al\u0131\u015f\u0131r?<\/h2>\n<p>CAPTCHA, bir i\u015flemi yapan taraf\u0131n insan olma ihtimalini \u00f6l\u00e7en otomatik bir do\u011frulama mekanizmas\u0131d\u0131r. Kullan\u0131c\u0131ya bir g\u00f6rev g\u00f6sterebilir, g\u00f6r\u00fcnmez risk analizi yapabilir veya yaln\u0131zca y\u00fcksek riskli oturumlarda ek do\u011frulama a\u00e7abilir. Hedef, insan\u0131 matematiksel olarak kan\u0131tlamak de\u011fil, otomasyon maliyetini art\u0131rmakt\u0131r.<\/p>\n<h3>\u0130stekten karara giden yol<\/h3>\n<ol>\n<li>Kullan\u0131c\u0131 formu a\u00e7ar veya bir i\u015flem ba\u015flat\u0131r.<\/li>\n<li>CAPTCHA sa\u011flay\u0131c\u0131s\u0131n\u0131n JavaScript kodu ya da widget&#8217;\u0131 y\u00fcklenir.<\/li>\n<li>Taray\u0131c\u0131, etkile\u015fim ve ortamla ilgili sinyalleri sa\u011flay\u0131c\u0131ya g\u00f6nderir.<\/li>\n<li>Sa\u011flay\u0131c\u0131 bir token, cevap veya risk puan\u0131 \u00fcretir.<\/li>\n<li>Uygulama sunucusu bu de\u011feri sa\u011flay\u0131c\u0131n\u0131n do\u011frulama API&#8217;sine g\u00f6nderir.<\/li>\n<li>Sunucu; token ge\u00e7erli mi, do\u011fru site i\u00e7in mi \u00fcretildi, s\u00fcresi doldu mu ve i\u015flemle e\u015fle\u015fiyor mu diye kontrol eder.<\/li>\n<li>Yaln\u0131zca sunucu taraf\u0131 kontrol\u00fc ba\u015far\u0131l\u0131ysa kay\u0131t, giri\u015f veya form g\u00f6nderimi tamamlan\u0131r.<\/li>\n<\/ol>\n<p>Token&#8217;\u0131n taray\u0131c\u0131dan gelmi\u015f olmas\u0131 tek ba\u015f\u0131na yeterli de\u011fildir. \u0130stemci taraf\u0131ndaki JavaScript de\u011fi\u015ftirilebilir; gizli anahtarlar yaln\u0131zca sunucuda tutulmal\u0131, formun as\u0131l i\u015flemi do\u011frulama sonucundan sonra yap\u0131lmal\u0131d\u0131r.<\/p>\n<h2 id=\"hangi-captcha-turleri-vardir\">Hangi CAPTCHA t\u00fcrleri vard\u0131r?<\/h2>\n<p>Her CAPTCHA ayn\u0131 kullan\u0131c\u0131 deneyimini sunmaz. Se\u00e7im yap\u0131l\u0131rken yaln\u0131zca bot engelleme oran\u0131na de\u011fil, eri\u015filebilirli\u011fe, mobil taray\u0131c\u0131 davran\u0131\u015f\u0131na, gizlilik gereksinimlerine ve ba\u015far\u0131s\u0131z do\u011frulamada olu\u015facak destek y\u00fck\u00fcne bak\u0131lmal\u0131d\u0131r.<\/p>\n<table>\n<thead>\n<tr>\n<th>T\u00fcr<\/th>\n<th>Nas\u0131l \u00e7al\u0131\u015f\u0131r?<\/th>\n<th>G\u00fc\u00e7l\u00fc yan\u0131<\/th>\n<th>S\u0131n\u0131rlamas\u0131<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Metin veya g\u00f6rsel<\/td>\n<td>Kullan\u0131c\u0131 harf, say\u0131 ya da nesne se\u00e7er.<\/td>\n<td>Kurulumu ve a\u00e7\u0131klamas\u0131 kolayd\u0131r.<\/td>\n<td>G\u00f6rme, dil ve mobil kullan\u0131m sorunlar\u0131 yaratabilir.<\/td>\n<\/tr>\n<tr>\n<td>Checkbox<\/td>\n<td>Kullan\u0131c\u0131 bir kutuyu i\u015faretler; arka planda risk analizi yap\u0131l\u0131r.<\/td>\n<td>Basit ak\u0131\u015flarda anla\u015f\u0131l\u0131rd\u0131r.<\/td>\n<td>\u015e\u00fcpheli oturumlarda ek test gerekebilir.<\/td>\n<\/tr>\n<tr>\n<td>G\u00f6r\u00fcnmez risk analizi<\/td>\n<td>Etkile\u015fim ve istek sinyallerine g\u00f6re karar verilir.<\/td>\n<td>\u00c7o\u011fu kullan\u0131c\u0131 ek g\u00f6rev g\u00f6rmez.<\/td>\n<td>Yanl\u0131\u015f pozitiflerin nedenini a\u00e7\u0131klamak zordur.<\/td>\n<\/tr>\n<tr>\n<td>Davran\u0131\u015f tabanl\u0131<\/td>\n<td>Fare, klavye, zamanlama ve oturum ba\u011flam\u0131 de\u011ferlendirilir.<\/td>\n<td>Basit scriptleri ay\u0131klayabilir.<\/td>\n<td>Gizlilik ve eri\u015filebilirlik tasar\u0131m\u0131 dikkat ister.<\/td>\n<\/tr>\n<tr>\n<td>Alternatif do\u011frulama<\/td>\n<td>E-posta, WebAuthn veya ba\u015fka bir ikinci ad\u0131m kullan\u0131l\u0131r.<\/td>\n<td>G\u00f6rsel CAPTCHA&#8217;ya alternatif sa\u011flar.<\/td>\n<td>Kullan\u0131c\u0131 hesab\u0131 ve ek ileti\u015fim kanal\u0131 gerektirebilir.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#8220;Ben robot de\u011filim&#8221; kutusu \u00e7o\u011fu zaman yaln\u0131zca g\u00f6r\u00fcnen par\u00e7ad\u0131r. As\u0131l karar; IP adresi, \u00e7erez, oturum, istek h\u0131z\u0131, taray\u0131c\u0131 sinyalleri ve \u00f6nceki ba\u015far\u0131s\u0131z denemeler gibi verilerin birlikte de\u011ferlendirilmesiyle verilebilir. Sa\u011flay\u0131c\u0131ya g\u00f6re ayr\u0131nt\u0131lar de\u011fi\u015fir; veri i\u015fleme ve saklama ko\u015fullar\u0131 ayr\u0131ca okunmal\u0131d\u0131r.<\/p>\n<h2 id=\"bot-korumasi-captcha-ile-sinirli-midir\">Bot korumas\u0131 CAPTCHA ile s\u0131n\u0131rl\u0131 m\u0131d\u0131r?<\/h2>\n<p>Hay\u0131r. CAPTCHA, bot y\u00f6netiminin yaln\u0131zca bir katman\u0131d\u0131r. Bir bot CAPTCHA&#8217;y\u0131 a\u015famasa bile login endpoint&#8217;ine saniyede y\u00fczlerce istek g\u00f6nderebilir, veritaban\u0131 ba\u011flant\u0131 havuzunu t\u00fcketebilir veya nginx worker s\u00fcre\u00e7lerini me\u015fgul edebilir. B\u00f6yle bir durumda do\u011frulama ekran\u0131 sunucuyu korumaya yetmez.<\/p>\n<h3>Birlikte uygulanmas\u0131 gereken katmanlar<\/h3>\n<ul>\n<li><strong>Oran s\u0131n\u0131rlama:<\/strong> IP, hesap, API anahtar\u0131 veya cihaz ba\u015f\u0131na saniye ve dakika s\u0131n\u0131rlar\u0131 koyun.<\/li>\n<li><strong>Hesap kilitleme:<\/strong> Ba\u015far\u0131s\u0131z giri\u015fleri s\u0131n\u0131rs\u0131z b\u0131rakmay\u0131n; kal\u0131c\u0131 kilitleme yerine artan gecikme daha dengeli olabilir.<\/li>\n<li><strong>\u0130stek do\u011frulama:<\/strong> CSRF token&#8217;\u0131, beklenen Origin ve Content-Type de\u011ferlerini kontrol edin.<\/li>\n<li><strong>Sunucu taraf\u0131 do\u011frulama:<\/strong> Form alanlar\u0131n\u0131n tipini, uzunlu\u011funu ve izin verilen de\u011ferlerini uygulamada kontrol edin.<\/li>\n<li><strong>A\u011f katman\u0131:<\/strong> Ters proxy, WAF veya CDN \u00fczerinde a\u00e7\u0131k\u00e7a tan\u0131mlanm\u0131\u015f kurallar kullan\u0131n.<\/li>\n<li><strong>G\u00f6zlemleme:<\/strong> 4xx yan\u0131tlar\u0131n\u0131, do\u011frulama ba\u015far\u0131s\u0131zl\u0131klar\u0131n\u0131 ve upstream gecikmesini birlikte izleyin.<\/li>\n<\/ul>\n<p>\u0130stemciye hata d\u00f6nmeden \u00f6nce sunucuda pahal\u0131 bir i\u015flem ba\u015flat\u0131l\u0131yorsa CAPTCHA ge\u00e7 kalm\u0131\u015f demektir. Dosya y\u00fckleme, parola s\u0131f\u0131rlama ve kupon deneme gibi ak\u0131\u015flarda do\u011frulama m\u00fcmk\u00fcn olan en erken g\u00fcvenlik s\u0131n\u0131r\u0131na yerle\u015ftirilmelidir.<\/p>\n<p>Bir API&#8217;nin s\u00fcrekli <code>429 Too Many Requests<\/code> \u00fcretmesi, CAPTCHA eklenerek otomatik bi\u00e7imde \u00e7\u00f6z\u00fclmez. \u0130stek sahibini, s\u0131n\u0131r\u0131 ve <code>Retry-After<\/code> davran\u0131\u015f\u0131n\u0131 incelemek i\u00e7in <a href=\"https:\/\/www.vps.tc\/blog\/tr\/too-many-requests-ne-demek-429-hatasi-cozumu\/\">Too Many Requests Ne Demek? 429 Hatas\u0131 ve \u00c7\u00f6z\u00fcm\u00fc<\/a> yaz\u0131s\u0131ndaki yakla\u015f\u0131m kullan\u0131labilir.<\/p>\n<p><strong>Ne yap\u0131lmal\u0131<\/strong> &#8211; CAPTCHA&#8217;dan \u00f6nce oran s\u0131n\u0131rlama ve istek boyutu s\u0131n\u0131r\u0131 koyun; do\u011frulama servisi yava\u015flasa bile uygulaman\u0131z\u0131n kaynaklar\u0131n\u0131 t\u00fcketmeyin.<\/p>\n<div class=\"aiw-callout aiw-callout-example\">\n<p class=\"aiw-callout-label\">\u00d6rnek<\/p>\n<p>Bir kay\u0131t formu ayn\u0131 IP&#039;den dakikada 300 istek al\u0131yorsa yaln\u0131zca CAPTCHA ekran\u0131 g\u00f6stermek PHP ve veritaban\u0131 kaynaklar\u0131n\u0131 yine t\u00fcketebilir. \u00d6nce proxy katman\u0131nda oran s\u0131n\u0131r\u0131 uygulay\u0131n, ard\u0131ndan \u015f\u00fcpheli isteklerde CAPTCHA veya ikinci do\u011frulama isteyin.<\/p>\n<\/div>\n<h2 id=\"captcha-dogrulamasi-sunucu-tarafinda-nasil-yapilir\">CAPTCHA do\u011frulamas\u0131 sunucu taraf\u0131nda nas\u0131l yap\u0131l\u0131r?<\/h2>\n<p>Genel ak\u0131\u015f sa\u011flay\u0131c\u0131dan sa\u011flay\u0131c\u0131ya de\u011fi\u015fse de g\u00fcvenlik s\u0131n\u0131rlar\u0131 ayn\u0131d\u0131r. Taray\u0131c\u0131dan gelen token uygulama sunucusuna g\u00f6nderilir; uygulama token&#8217;\u0131 gizli anahtarla sa\u011flay\u0131c\u0131n\u0131n do\u011frulama u\u00e7 noktas\u0131na iletir. Ba\u015far\u0131l\u0131 yan\u0131t al\u0131nmadan veritaban\u0131na kay\u0131t yaz\u0131lmaz.<\/p>\n<pre><code>POST \/api\/register HTTP\/1.1\nContent-Type: application\/json\n\n{\n  \"email\": \"kullanici@example.net\",\n  \"password\": \"...\",\n  \"captcha_token\": \"tarayicidan-gelen-token\"\n}<\/code><\/pre>\n<p>Uygulama sunucusu token&#8217;\u0131 kendi do\u011frulama iste\u011finde kullan\u0131r. A\u015fa\u011f\u0131daki \u00f6rnek sa\u011flay\u0131c\u0131dan ba\u011f\u0131ms\u0131z ak\u0131\u015f\u0131 g\u00f6sterir; ger\u00e7ek endpoint, alan adlar\u0131 ve yan\u0131t \u015femas\u0131 i\u00e7in se\u00e7ilen \u00fcr\u00fcn\u00fcn resmi dok\u00fcmantasyonu esas al\u0131nmal\u0131d\u0131r.<\/p>\n<pre><code>curl --fail-with-body --silent \\\n  -X POST \"https:\/\/captcha-provider.example\/verify\" \\\n  -d \"secret=${CAPTCHA_SECRET}\" \\\n  -d \"response=${CAPTCHA_TOKEN}\"<\/code><\/pre>\n<p><code>--fail-with-body<\/code> hata durumunda g\u00f6vdeyi kaybetmeden ba\u015far\u0131s\u0131z \u00e7\u0131k\u0131\u015f kodu verir. Gizli anahtar\u0131 shell ge\u00e7mi\u015fine yazmamak i\u00e7in ortam de\u011fi\u015fkeni veya gizli bilgi deposu kullan\u0131n; anahtar\u0131 HTML, JavaScript veya Git deposuna koymay\u0131n.<\/p>\n<h3>Kontrol edilmesi gereken alanlar<\/h3>\n<ul>\n<li>Do\u011frulama yan\u0131t\u0131 ba\u015far\u0131l\u0131 m\u0131?<\/li>\n<li>Token belirlenen site veya hostname i\u00e7in mi \u00fcretildi?<\/li>\n<li>Token ilgili aksiyonla e\u015fle\u015fiyor mu?<\/li>\n<li>Risk puan\u0131 uygulaman\u0131n kabul e\u015fi\u011fini ge\u00e7iyor mu?<\/li>\n<li>Token daha \u00f6nce kullan\u0131lm\u0131\u015f veya s\u00fcresi dolmu\u015f mu?<\/li>\n<li>Do\u011frulama servisine yap\u0131lan istek zaman a\u015f\u0131m\u0131na u\u011frad\u0131 m\u0131?<\/li>\n<\/ul>\n<p>CAPTCHA sa\u011flay\u0131c\u0131s\u0131 eri\u015filemiyorsa uygulaman\u0131n fail-open m\u0131, fail-closed m\u0131 davranaca\u011f\u0131 \u00f6nceden belirlenmelidir. B\u00fclten aboneli\u011finde kontroll\u00fc bir kuyru\u011fa almak makul olabilir; y\u00f6netici giri\u015fi veya para transferinde do\u011frulama olmadan devam etmek kabul edilemez.<\/p>\n<p><strong>Ne yap\u0131lmal\u0131<\/strong> &#8211; Token&#8217;\u0131 her i\u015flemde tek kullan\u0131ml\u0131k kabul edin ve ba\u015far\u0131 karar\u0131n\u0131 yaln\u0131zca sunucu taraf\u0131ndaki do\u011frulama yan\u0131t\u0131na ba\u011flay\u0131n.<\/p>\n<h2 id=\"captcha-hangi-durumlarda-kullanici-deneyimini-bozar\">CAPTCHA hangi durumlarda kullan\u0131c\u0131 deneyimini bozar?<\/h2>\n<p>CAPTCHA yanl\u0131\u015f yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda ger\u00e7ek kullan\u0131c\u0131lar\u0131 cezaland\u0131rabilir. Mobil cihazda \u00fc\u00e7\u00fcnc\u00fc taraf \u00e7erezleri engellenmi\u015f olabilir, kurumsal proxy JavaScript&#8217;i de\u011fi\u015ftirebilir veya ekran okuyucu bir g\u00f6rsel testi kullanamayabilir. Ayn\u0131 IP&#8217;den \u00e7\u0131kan b\u00fcy\u00fck bir ofis ya da CGNAT arkas\u0131ndaki aboneler de tek bir k\u00f6t\u00fc sinyal gibi g\u00f6r\u00fcnebilir.<\/p>\n<p>W3C&#8217;nin eri\u015filebilirlik yakla\u015f\u0131m\u0131, yaln\u0131zca g\u00f6rsel alg\u0131ya dayal\u0131 bir g\u00f6revin tek se\u00e7enek olarak b\u0131rak\u0131lmamas\u0131n\u0131 gerektirir. Sesli alternatif, eri\u015filebilir do\u011frulama ak\u0131\u015f\u0131, klavye ile kullan\u0131m ve a\u00e7\u0131k hata mesajlar\u0131 de\u011ferlendirilmelidir. Alternatif y\u00f6ntem de ayn\u0131 g\u00fcvenlik seviyesini ta\u015f\u0131mal\u0131d\u0131r; kolayca atlanabilen bir eri\u015filebilirlik d\u00fc\u011fmesi koruma sa\u011flamaz.<\/p>\n<ul>\n<li>G\u00f6revi tamamlamak i\u00e7in s\u0131n\u0131rs\u0131z deneme hakk\u0131 vermeyin; ge\u00e7ici hata ile kas\u0131tl\u0131 ba\u015far\u0131s\u0131zl\u0131\u011f\u0131 ay\u0131r\u0131n.<\/li>\n<li>Ba\u015far\u0131s\u0131zl\u0131k mesaj\u0131nda &#8220;CAPTCHA ba\u015far\u0131s\u0131z&#8221; demek yerine yeni do\u011frulama gerekti\u011fini ve form verisinin korunup korunmad\u0131\u011f\u0131n\u0131 a\u00e7\u0131klay\u0131n.<\/li>\n<li>JavaScript kapal\u0131 kullan\u0131c\u0131lar i\u00e7in i\u015f ak\u0131\u015f\u0131n\u0131 tamamen k\u0131rmak yerine e-posta do\u011frulamas\u0131 veya manuel inceleme gibi alternatifleri de\u011ferlendirin.<\/li>\n<li>CAPTCHA&#8217;y\u0131 \u00f6deme, parola s\u0131f\u0131rlama ve y\u00f6netici eri\u015fimi gibi i\u015flemlerde tek fakt\u00f6r olarak kullanmay\u0131n.<\/li>\n<\/ul>\n<p><strong>Ne yap\u0131lmal\u0131<\/strong> &#8211; Klavye, ekran okuyucu ve mobil ba\u011flant\u0131yla test edin; ger\u00e7ek kullan\u0131c\u0131lar\u0131n s\u00fcrekli d\u00f6ng\u00fcye girdi\u011fi ak\u0131\u015flar\u0131 yay\u0131na almay\u0131n.<\/p>\n<div class=\"aiw-callout aiw-callout-warn\">\n<p class=\"aiw-callout-label\">Dikkat<\/p>\n<p>CDN veya ters proxy arkas\u0131nda ger\u00e7ek istemci IP&#039;sini belirlemek i\u00e7in gelen her X-Forwarded-For de\u011ferine g\u00fcvenmeyin. G\u00fcvenilen proxy adreslerini a\u00e7\u0131k\u00e7a tan\u0131mlamadan oran s\u0131n\u0131rlama yapmak, limiti atlatmaya veya ger\u00e7ek kullan\u0131c\u0131lar\u0131 topluca engellemeye yol a\u00e7abilir.<\/p>\n<\/div>\n<h2 id=\"captcha-gizlilik-acisindan-ne-ifade-eder\">CAPTCHA gizlilik a\u00e7\u0131s\u0131ndan ne ifade eder?<\/h2>\n<p>Bir CAPTCHA hizmeti, do\u011frulama s\u0131ras\u0131nda IP adresi, taray\u0131c\u0131 bilgisi, \u00e7erezler, zamanlama ve etkile\u015fim verileri i\u015fleyebilir. Hangi verinin topland\u0131\u011f\u0131, ne kadar sakland\u0131\u011f\u0131 ve \u00fc\u00e7\u00fcnc\u00fc taraflarla payla\u015f\u0131l\u0131p payla\u015f\u0131lmad\u0131\u011f\u0131 sa\u011flay\u0131c\u0131n\u0131n gizlilik belgelerinde a\u00e7\u0131klan\u0131r. Bu ayr\u0131nt\u0131lar \u00fclkeden \u00fclkeye de\u011fi\u015fen mevzuat y\u00fck\u00fcml\u00fcl\u00fckleri de do\u011furabilir.<\/p>\n<p>Gizlilik de\u011ferlendirmesinde yaln\u0131zca \u00e7erez bildirimi yeterli de\u011fildir. Veri ak\u0131\u015f\u0131n\u0131 \u00e7\u0131kar\u0131n: taray\u0131c\u0131 hangi alan ad\u0131na ba\u011flan\u0131yor, token uygulaman\u0131za hangi de\u011ferlerle geliyor, loglara hangi tan\u0131mlay\u0131c\u0131lar yaz\u0131l\u0131yor? Ters proxy kullan\u0131l\u0131yorsa yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f <a href=\"https:\/\/www.vps.tc\/blog\/tr\/proxy-nedir-proxy-sunucu-ne-ise-yarar\/\">Proxy Nedir? Proxy Sunucu Ne \u0130\u015fe Yarar?<\/a> i\u00e7indeki temel ba\u015fl\u0131klar &#8211; istemci IP&#8217;si ve g\u00fcvenilen ba\u015fl\u0131klar &#8211; ayr\u0131ca incelenmelidir.<\/p>\n<p>Loglarda token&#8217;\u0131n tamam\u0131n\u0131 saklamay\u0131n. Gerekiyorsa yaln\u0131zca sa\u011flay\u0131c\u0131 yan\u0131t\u0131, aksiyon ad\u0131, zaman damgas\u0131 ve red nedeninin s\u0131n\u0131rl\u0131 bir \u00f6zeti tutulabilir. Hassas de\u011ferleri maskeleyin; debug seviyesini \u00fcretimde s\u00fcrekli a\u00e7\u0131k b\u0131rakmay\u0131n.<\/p>\n<div class=\"aiw-callout aiw-callout-tip\">\n<p class=\"aiw-callout-label\">\u0130pucu<\/p>\n<p>Taray\u0131c\u0131 geli\u015ftirici ara\u00e7lar\u0131nda token&#039;\u0131n kendisini kopyalamak yerine yaln\u0131zca alan ad\u0131n\u0131 ve HTTP durumunu izleyin. As\u0131l do\u011frulama iste\u011fini sunucunun yapt\u0131\u011f\u0131n\u0131 do\u011frulamak, gizli anahtar\u0131n frontend&#039;e s\u0131z\u0131p s\u0131zmad\u0131\u011f\u0131n\u0131 anlaman\u0131n h\u0131zl\u0131 yoludur.<\/p>\n<\/div>\n<h2 id=\"wordpress-ve-nginx-uzerinde-captcha-nereye-yerlestirilir\">WordPress ve nginx \u00fczerinde CAPTCHA nereye yerle\u015ftirilir?<\/h2>\n<p>WordPress&#8217;te CAPTCHA eklentisi yaln\u0131zca g\u00f6r\u00fcnen formu koruyorsa XML-RPC, REST API, \u00f6zel AJAX endpoint&#8217;leri veya parola s\u0131f\u0131rlama ak\u0131\u015f\u0131 a\u00e7\u0131k kalabilir. Korunan yollar\u0131 uygulaman\u0131n ger\u00e7ek istek ak\u0131\u015f\u0131yla kar\u015f\u0131la\u015ft\u0131r\u0131n. Y\u00f6netim paneline eri\u015fim i\u00e7in CAPTCHA eklemek, g\u00fc\u00e7l\u00fc parola ve \u00e7ok fakt\u00f6rl\u00fc do\u011frulaman\u0131n yerine ge\u00e7mez.<\/p>\n<p>nginx taraf\u0131nda basit bir istek limiti \u00f6rne\u011fi \u015f\u00f6yledir:<\/p>\n<pre><code>http {\n    limit_req_zone $binary_remote_addr zone=login_limit:10m rate=5r\/m;\n\n    server {\n        location = \/wp-login.php {\n            limit_req zone=login_limit burst=3 nodelay;\n            include fastcgi_params;\n            fastcgi_pass unix:\/run\/php\/php8.3-fpm.sock;\n        }\n    }\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma, istemci adresi ba\u015f\u0131na ortalama dakikada 5 iste\u011fe izin verir ve k\u0131sa s\u00fcreli 3 isteklik bir patlamay\u0131 kabul eder. PHP-FPM soket yolu da\u011f\u0131t\u0131ma g\u00f6re de\u011fi\u015fir; yay\u0131na almadan \u00f6nce <code>nginx -t<\/code> ile s\u00f6zdizimini, ard\u0131ndan eri\u015fim loglar\u0131yla ger\u00e7ek davran\u0131\u015f\u0131 kontrol edin.<\/p>\n<pre><code>sudo nginx -t\nsudo systemctl reload nginx<\/code><\/pre>\n<p>Payla\u015f\u0131ml\u0131 proxy veya CDN arkas\u0131nda herkes ayn\u0131 IP olarak g\u00f6r\u00fcn\u00fcyorsa <code>$binary_remote_addr<\/code> yerine gelen ba\u015fl\u0131klar\u0131 do\u011frudan kullanmak tehlikeli olabilir. Yaln\u0131zca g\u00fcvenilen proxy adreslerinden gelen ve do\u011fru yap\u0131land\u0131r\u0131lm\u0131\u015f istemci IP ba\u015fl\u0131\u011f\u0131 de\u011ferlendirilmelidir. WordPress taraf\u0131ndaki bellek ve PHP sorunlar\u0131 i\u00e7in <a href=\"https:\/\/www.vps.tc\/blog\/tr\/wordpress-bellek-siniri-hatasi-nasil-cozulur\/\">WordPress Bellek S\u0131n\u0131r\u0131 Hatas\u0131 Nas\u0131l \u00c7\u00f6z\u00fcl\u00fcr?<\/a> ba\u015fl\u0131\u011f\u0131ndaki kaynak t\u00fcketimi yakla\u015f\u0131m\u0131 da birlikte d\u00fc\u015f\u00fcn\u00fclmelidir.<\/p>\n<p><strong>Ne yap\u0131lmal\u0131<\/strong> &#8211; CAPTCHA&#8217;y\u0131 login, kay\u0131t, yorum ve parola s\u0131f\u0131rlama gibi t\u00fcm ilgili endpoint&#8217;lerde do\u011frulay\u0131n; yaln\u0131zca formun g\u00f6r\u00fcnd\u00fc\u011f\u00fc sayfay\u0131 korumakla yetinmeyin.<\/p>\n<h2 id=\"bir-captcha-sistemi-nasil-test-edilir\">Bir CAPTCHA sistemi nas\u0131l test edilir?<\/h2>\n<p>Test yaln\u0131zca &#8220;kutuyu i\u015faretledim, form g\u00f6nderildi&#8221; seviyesinde b\u0131rak\u0131lmamal\u0131d\u0131r. Ba\u015far\u0131l\u0131, ba\u015far\u0131s\u0131z, s\u00fcresi dolmu\u015f, tekrar kullan\u0131lm\u0131\u015f ve yanl\u0131\u015f site i\u00e7in \u00fcretilmi\u015f token senaryolar\u0131 ayr\u0131 ayr\u0131 denenmelidir.<\/p>\n<ol>\n<li>Ge\u00e7erli token ile normal i\u015flemi do\u011frulay\u0131n.<\/li>\n<li>Token alan\u0131n\u0131 silip iste\u011fi g\u00f6nderin.<\/li>\n<li>Token&#8217;\u0131 de\u011fi\u015ftirerek do\u011frulama hatas\u0131n\u0131 g\u00f6zlemleyin.<\/li>\n<li>Ayn\u0131 token ile iki kez i\u015flem yapmay\u0131 deneyin.<\/li>\n<li>Do\u011frulama servisini zaman a\u015f\u0131m\u0131na u\u011frat\u0131p uygulaman\u0131n karar\u0131n\u0131 kontrol edin.<\/li>\n<li>H\u0131z s\u0131n\u0131r\u0131n\u0131 a\u015fan isteklerde uygulama ve proxy loglar\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/li>\n<li>Ekran okuyucu, klavye, dar ekran ve d\u00fc\u015f\u00fck bant geni\u015fli\u011fiyle ak\u0131\u015f\u0131 tamamlay\u0131n.<\/li>\n<\/ol>\n<p>\u0130zlenecek metrikler aras\u0131nda CAPTCHA ba\u015far\u0131 oran\u0131, red oran\u0131, sa\u011flay\u0131c\u0131 yan\u0131t s\u00fcresi, uygulama yan\u0131t kodlar\u0131, endpoint ba\u015f\u0131na istek say\u0131s\u0131 ve kullan\u0131c\u0131lar\u0131n tekrar deneme oran\u0131 bulunur. Bir anda y\u00fckselen red oran\u0131 sald\u0131r\u0131, sa\u011flay\u0131c\u0131 de\u011fi\u015fikli\u011fi veya bozuk site anahtar\u0131 anlam\u0131na gelebilir.<\/p>\n<p>Bir hosting ortam\u0131nda bu sinyalleri Nginx access log, PHP-FPM log ve uygulama loguyla ili\u015fkilendirmek gerekir. Yaln\u0131zca CPU kullan\u0131m\u0131na bakmak ge\u00e7 kalm\u0131\u015f bir alarmd\u0131r; botlar i\u015flemciyi doldurmadan \u00f6nce ba\u011flant\u0131, oturum veya veritaban\u0131 havuzunu t\u00fcketebilir.<\/p>\n<div class=\"aiw-callout aiw-callout-field\">\n<p class=\"aiw-callout-label\">Sahadan not<\/p>\n<p>Bir CAPTCHA y\u00fck testi s\u0131ras\u0131nda cron sat\u0131r\u0131na fazladan y\u0131ld\u0131z ekledim. Test scripti her dakika \u00e7al\u0131\u015f\u0131nca posta kuyru\u011fu 40 bini ge\u00e7ti; cron kayd\u0131n\u0131 kald\u0131r\u0131p journalctl ve mail queue \u00e7\u0131kt\u0131s\u0131n\u0131 kontrol ettikten sonra y\u00fck normale d\u00f6nd\u00fc.<\/p>\n<\/div>\n<h2 id=\"captcha-kullanirken-en-sik-yapilan-hatalar\">CAPTCHA kullan\u0131rken en s\u0131k yap\u0131lan hatalar<\/h2>\n<ul>\n<li>Gizli anahtar\u0131 frontend koduna koymak.<\/li>\n<li>Token do\u011frulanmadan form verisini veritaban\u0131na yazmak.<\/li>\n<li>Site anahtar\u0131 ile sunucu gizli anahtar\u0131n\u0131 kar\u0131\u015ft\u0131rmak.<\/li>\n<li>CAPTCHA ba\u015far\u0131s\u0131zl\u0131\u011f\u0131nda kullan\u0131c\u0131ya sonsuz tekrar hakk\u0131 vermek.<\/li>\n<li>IP ba\u015fl\u0131\u011f\u0131n\u0131 g\u00fcvenilen proxy kontrol\u00fc olmadan kabul etmek.<\/li>\n<li>CAPTCHA&#8217;y\u0131 oran s\u0131n\u0131rlaman\u0131n yerine koymak.<\/li>\n<li>Loglarda token ve ki\u015fisel verileri d\u00fcz metin saklamak.<\/li>\n<li>G\u00f6rsel testi eri\u015filebilir alternatif olmadan zorunlu tutmak.<\/li>\n<li>\u00dcretim de\u011fi\u015fikli\u011fini test etmeden yapmak.<\/li>\n<\/ul>\n<p>Bir do\u011frulama hizmetinin yan\u0131t vermemesi, b\u00fct\u00fcn siteyi s\u0131n\u0131rs\u0131z bi\u00e7imde a\u00e7mak i\u00e7in gerek\u00e7e de\u011fildir. \u0130\u015f ak\u0131\u015f\u0131n\u0131n riskine g\u00f6re kuyruklama, ge\u00e7ici bak\u0131m yan\u0131t\u0131 veya daha g\u00fc\u00e7l\u00fc ikinci do\u011frulama se\u00e7ilebilir.<\/p>\n<h2 id=\"captchayi-yayina-almadan-once-kontrol-edin\">CAPTCHA&#039;y\u0131 Yay\u0131na Almadan \u00d6nce Kontrol Edin<\/h2>\n<ul class=\"aiw-checklist\">\n<li>Token&#039;\u0131 sunucu taraf\u0131nda do\u011frulay\u0131n.<\/li>\n<li>Gizli anahtar\u0131 yaln\u0131zca sunucuda saklay\u0131n.<\/li>\n<li>Token s\u00fcresi doldu\u011funda i\u015flemi durdurun.<\/li>\n<li>Tek kullan\u0131ml\u0131k token tekrar\u0131n\u0131 reddedin.<\/li>\n<li>\u0130lgili t\u00fcm endpoint&#039;leri listeleyin.<\/li>\n<li>IP ve hesap bazl\u0131 oran s\u0131n\u0131r\u0131 ekleyin.<\/li>\n<li>Klavye ve ekran okuyucu testi yap\u0131n.<\/li>\n<\/ul>\n<div class=\"aiw-cta\">\n<p>Sitenizde CAPTCHA kullan\u0131yorsan\u0131z \u00f6nce hangi endpoint&#039;leri ve hangi tehditleri korudu\u011funu yaz\u0131l\u0131 hale getirin. Ard\u0131ndan ba\u015far\u0131s\u0131z do\u011frulama, oran s\u0131n\u0131r\u0131 ve kullan\u0131c\u0131 deneyimi metriklerini birlikte izleyin.<\/p>\n<p class=\"aiw-cta-action\"><a href=\"https:\/\/www.vps.tc\/tr\/vps\">VPS paketlerini inceleyin<\/a><\/p>\n<\/div>\n<h2 id=\"sik-sorulan-sorular\">S\u0131k Sorulan Sorular<\/h2>\n<div class=\"aiw-faq\">\n<details class=\"aiw-faq-item\" open>\n<summary>CAPTCHA nedir?<\/summary>\n<p>CAPTCHA, bir i\u015flemi yapan taraf\u0131n insan olma ihtimalini de\u011ferlendiren otomatik do\u011frulama mekanizmas\u0131d\u0131r. G\u00f6rsel g\u00f6rev, checkbox, davran\u0131\u015f analizi veya risk puan\u0131 kullanabilir. Ama\u00e7 insan\u0131 matematiksel olarak kan\u0131tlamak de\u011fil, otomatik isteklerin maliyetini art\u0131rmakt\u0131r. G\u00fcvenli uygulamada CAPTCHA sonucu taray\u0131c\u0131da de\u011fil, sunucu taraf\u0131nda do\u011frulan\u0131r.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>CAPTCHA botlar\u0131 tamamen engeller mi?<\/summary>\n<p>Hay\u0131r. CAPTCHA yaln\u0131zca bot koruma katmanlar\u0131ndan biridir. Geli\u015fmi\u015f botlar do\u011frulama hizmetlerini taklit etmeye veya insan destekli \u00e7\u00f6z\u00fcm kullanmaya \u00e7al\u0131\u015fabilir. Ayr\u0131ca CAPTCHA g\u00f6sterilmeden \u00f6nce \u00e7ok say\u0131da istek g\u00f6ndererek kaynak t\u00fcketebilirler. Bu nedenle oran s\u0131n\u0131rlama, WAF, oturum kontrolleri, CSRF korumas\u0131 ve sunucu taraf\u0131 do\u011frulama birlikte uygulanmal\u0131d\u0131r.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>CAPTCHA do\u011frulamas\u0131 neden ba\u015far\u0131s\u0131z olur?<\/summary>\n<p>Ge\u00e7ersiz veya s\u00fcresi dolmu\u015f token, yanl\u0131\u015f site anahtar\u0131, hostname uyu\u015fmazl\u0131\u011f\u0131, bozuk proxy ba\u015fl\u0131klar\u0131, istemci saat sorunlar\u0131 ve sa\u011flay\u0131c\u0131ya eri\u015fim hatas\u0131 yayg\u0131n nedenlerdir. \u00dcretim loglar\u0131nda token&#039;\u0131n tamam\u0131n\u0131 saklamadan sa\u011flay\u0131c\u0131 yan\u0131t kodunu ve aksiyon ad\u0131n\u0131 izleyin. Site anahtar\u0131 ile sunucu gizli anahtar\u0131n\u0131n do\u011fru ortamda kullan\u0131ld\u0131\u011f\u0131n\u0131 da kontrol edin.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>CAPTCHA yerine ne kullan\u0131labilir?<\/summary>\n<p>\u0130\u015flemin riskine g\u00f6re oran s\u0131n\u0131rlama, e-posta do\u011frulama, WebAuthn veya passkey, tek kullan\u0131ml\u0131k kod, honeypot alan\u0131 ve davran\u0131\u015f analizi kullan\u0131labilir. Bu se\u00e7eneklerin her biri farkl\u0131 tehditleri hedefler. \u00d6rne\u011fin oran s\u0131n\u0131rlama kaynak t\u00fcketimini azalt\u0131r, passkey hesap ele ge\u00e7irmeyi zorla\u015ft\u0131r\u0131r; hi\u00e7biri t\u00fcm bot senaryolar\u0131nda CAPTCHA&#039;n\u0131n birebir alternatifi de\u011fildir.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>CAPTCHA web sitesini yava\u015flat\u0131r m\u0131?<\/summary>\n<p>Harici JavaScript, DNS \u00e7\u00f6z\u00fcmlemesi, ek a\u011f ba\u011flant\u0131lar\u0131 ve do\u011frulama API&#039;si yan\u0131t\u0131 sayfa veya form ak\u0131\u015f\u0131na gecikme ekleyebilir. Etki; sa\u011flay\u0131c\u0131n\u0131n y\u00fckleme bi\u00e7imine, \u00f6nbelle\u011fe ve do\u011frulaman\u0131n ne zaman yap\u0131ld\u0131\u011f\u0131na ba\u011fl\u0131d\u0131r. CAPTCHA kodunu her sayfaya eklemek yerine yaln\u0131zca riskli i\u015flemlerde y\u00fcklemek, zaman a\u015f\u0131m\u0131 belirlemek ve metrikleri izlemek daha sa\u011fl\u0131kl\u0131d\u0131r.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>WordPress&#039;te CAPTCHA nereye eklenmeli?<\/summary>\n<p>Giri\u015f, kay\u0131t, yorum, parola s\u0131f\u0131rlama ve sitenizde kullan\u0131lan \u00f6zel AJAX veya REST endpoint&#039;leri ayr\u0131 ayr\u0131 incelenmelidir. Yaln\u0131zca g\u00f6r\u00fcnen forma CAPTCHA eklemek yeterli olmayabilir. Eklentinin token&#039;\u0131 sunucuda do\u011frulad\u0131\u011f\u0131n\u0131, ba\u015far\u0131s\u0131z istekleri s\u0131n\u0131rlad\u0131\u011f\u0131n\u0131 ve XML-RPC gibi ek giri\u015f kanallar\u0131n\u0131 g\u00f6zden ge\u00e7irdi\u011fini kontrol edin. Y\u00f6netici hesaplar\u0131nda \u00e7ok fakt\u00f6rl\u00fc do\u011frulama da kullan\u0131n.<\/p>\n<\/details>\n<\/div>\n<h2 id=\"kaynaklar\">Kaynaklar<\/h2>\n<ul class=\"aiw-sources\">\n<li><a href=\"https:\/\/developers.google.com\/recaptcha\/docs\/verify\" target=\"_blank\" rel=\"noopener\">Google reCAPTCHA &#8211; Siteverify API<\/a> \u2014 developers.google.com<\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Status\/429\" target=\"_blank\" rel=\"noopener\">MDN &#8211; 429 Too Many Requests<\/a> \u2014 developer.mozilla.org<\/li>\n<li><a href=\"https:\/\/www.w3.org\/WAI\/\" target=\"_blank\" rel=\"noopener\">W3C WAI &#8211; Web Accessibility Initiative<\/a> \u2014 w3.org<\/li>\n<li><a href=\"https:\/\/nginx.org\/en\/docs\/http\/ngx_http_limit_req_module.html\" target=\"_blank\" rel=\"noopener\">nginx &#8211; Request Rate Limiting<\/a> \u2014 nginx.org<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>CAPTCHA&#8217;n\u0131n insan ve bot ayr\u0131m\u0131n\u0131 nas\u0131l yapt\u0131\u011f\u0131, sunucu taraf\u0131nda nas\u0131l do\u011fruland\u0131\u011f\u0131 ve neden tek ba\u015f\u0131na yeterli olmad\u0131\u011f\u0131 pratik \u00f6rneklerle a\u00e7\u0131klan\u0131yor.<\/p>\n","protected":false},"author":2,"featured_media":931,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-933","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-genel"],"lang":"tr","translations":{"tr":933,"en":934},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/933","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/comments?post=933"}],"version-history":[{"count":1,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/933\/revisions"}],"predecessor-version":[{"id":935,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/933\/revisions\/935"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media\/931"}],"wp:attachment":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media?parent=933"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/categories?post=933"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/tags?post=933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}