--- title: Hızlı başlangıç --- # Hızlı başlangıç Bu kılavuz, CaptchaLa CAPTCHA'yı 5 dakikada entegre etmenize yardımcı olur. ::: tip 30 saniyede çalışırken görün [demo-v1.captcha.la](https://demo-v1.captcha.la) — saf HTML + PHP, MIT lisanslı, her sayfada view-source açıktır. - [popup.html](https://demo-v1.captcha.la/popup.html) — açılır pencere modu - [float.html](https://demo-v1.captcha.la/float.html) — kayan widget - [bind.html](https://demo-v1.captcha.la/bind.html) — butona bağla - [inline.html](https://demo-v1.captcha.la/inline.html) — satır içi gömme - [server-token.html](https://demo-v1.captcha.la/server-token.html) — sunucu tarafından düzenlenen token (yeniden oynatma engelleme) ::: ## 1. Hesap Oluşturun Panelden ücretsiz bir hesap oluşturun [Şimdi Kaydolun →](https://dash.captcha.la/register) ## 2. Uygulama Oluşturun App Key'inizi almak için panelde bir uygulama oluşturun ## 3. SDK'yı Kurun Tercih ettiğiniz kurulum yöntemini seçin ```html ``` ```bash # or via npm npm install captchala ``` ## 4. CAPTCHA'yı Başlatın Sayfanızda CAPTCHA bileşenini başlatın ```html ``` ## 5. Sunucu Doğrulaması Token'ı sunucunuzda doğrulayın ```bash POST https://apiv1.captcha.la/v1/validate X-App-Key: YOUR_APP_KEY X-App-Secret: YOUR_APP_SECRET Content-Type: application/json { "pass_token": "" } ``` ```json { "code": 0, "data": { "valid": true, "action": "login", "challenge_id": "ch_xxx", "uid": null, "risk_score": 12 } } ``` ::: warning Her zaman `data.valid === true` olduğunu **ve** `data.action` değerinin beklediğiniz senaryoyla eşleştiğini kontrol edin. Pass token'lar tek kullanımlıktır; aynı `pt_xxx` iki kez doğrulanamaz. ::: ## Sunucu Tarafından Düzenlenen Token Modu (üretim için önerilir) {#server-token} Hassas işlemler (giriş, kayıt, ödeme) için sunucu tarafından düzenlenen token akışını öneririz: backend'iniz önce kısa ömürlü bir server_token ister, ardından tarayıcı bu token'ı kullanarak CAPTCHA'yı başlatır. Bu, sızdırılmış bir app_key'in kötüye kullanımını önler. ### Ne zaman kullanılmalı - Önerilen: kayıt, giriş, parola sıfırlama, ödeme, puan kullanımı ve bir saldırganın script ile çağırabileceği tüm uç noktalar. - İsteğe bağlı: genel formlar, arama kutuları ve kolaylığın daha önemli olduğu düşük değerli etkileşimler. ### 1. Backend server_token düzenler /v1/server/challenge/issue uç noktasını kendi sunucunuzdan, X-App-Key ve X-App-Secret başlıklarıyla çağırın. Bu başlıkları asla tarayıcıya açmayın. ```bash # Server-side only — never call this from a browser curl -X POST https://apiv1.captcha.la/v1/server/challenge/issue \ -H "X-App-Key: YOUR_APP_KEY" \ -H "X-App-Secret: YOUR_APP_SECRET" \ -d "action=login&ttl=300&max_uses=1&bind_ip=1.2.3.4" # → { "code": 0, "data": { "server_token": "sct_...", "expires_in": 300 } } ``` ### 2. Frontend, server_token ile CaptchaLa'yı render eder Token'ı CaptchaLa bileşeninize iletin. SDK, challenge başlatılırken bunu challenge başlatma çağrısına aktarır. ```js // Browser fetches the token from YOUR backend, not from CaptchaLa directly const { serverToken } = await fetch('/api/captcha/issue').then(r => r.json()); Captchala.init({ appKey: 'YOUR_APP_KEY', serverToken, // single-use, short-lived product: 'popup', action: 'login', }) .appendTo('#captcha-container') .onSuccess(res => submitForm(res.token)); ``` ### Güvenlik notları - app_secret'i asla frontend koduna, mobil uygulamalara veya açık depolara koymayın. Sunucu tarafında kalmalıdır. - Panelde "Sunucu tarafından düzenlenen challenge token'ı zorunlu kıl" seçeneğini etkinleştirerek server_token olmadan denenen tüm challenge'ları reddedin. - ttl değerini kısa tutun (varsayılan 300 sn, maksimum 900 sn) ve token sızıntısının etkisini azaltmak için max_uses=1 değerini tercih edin. ## Sonraki adımlar - [Web SDK](./web-sdk) - [API Referansı](./api-reference)