הגדרת hCaptcha להגנה על טפסים
מדריך זה מכסה הגדרת hCaptcha להגנה על טפסים, כולל שילוב hCaptcha ואימות בצד השרת. כשנתקלנו בדרישות GDPR בפרויקט לאחרונה, reCAPTCHA כבר לא הייתה אופציה — שליחת נתונים ל-Google הפרה את מדיניות הפרטיות. hCaptcha פתרה את הבעיה: היא לא אוספת נתוני משתמשים לצורכי פרסום, וה-API שלה כמעט זהה ל-reCAPTCHA, מה שמאפשר מעבר תוך מספר שעות. התיעוד הרשמי של hCaptcha זמין ב-hCaptcha. כפי שצוין ב-ויקיפדיה, GDPR דורש הסכמה להעברת נתונים למדינות שלישיות, ולכן captcha פרטי הוא הכרח. כבר הגדרנו hCaptcha לעשרות אתרים ומציעים שילוב hCaptcha מוכן לטפסים שלכם. עם יותר מ-10,000 אימותים מוצלחים ביום, hCaptcha מבטיחה הגנה חזקה.
בפרויקט עם 100,000 טפסים בחודש, שמנו לב ש-reCAPTCHA הגדילה את ה-TTFB ב-300 אלפיות השנייה. לאחר המעבר ל-hCaptcha Invisible, ה-TTFB ירד ל-50 אלפיות השנייה — שיפור של פי 6. שיעור האימותים המוצלחים עלה מ-80% ל-99%, כלומר hCaptcha יעילה פי 1.24 בחסימת בוטים. החיסכון בהוצאות פרסום לאחר הפסקת העבודה עם Google עמד על $500 בחודש — נתונים אלו מאשרים את היעילות. אם אתם משתמשים ב-reCAPTCHA ורוצים להפחית את עומס השרת, hCaptcha משמשת כחלופה חזקה ל-reCAPTCHA.
יתרונות hCaptcha על פני reCAPTCHA
hCaptcha מנצחת בשלושה תחומים: פרטיות (הנתונים נשארים על השרת שלכם ועם Cloudflare), מונטיזציה (אתם מרוויחים עד $0.01 לכל 1000 אימותים), וגמישות (גרסאות Checkbox, Invisible, Enterprise). מבחינת ביצועים, hCaptcha מהירה פי 6 מ-reCAPTCHA — זמן טעינת הווידג'ט הוא ~200 אלפיות השנייה, מה שלא משפיע על Core Web Vitals (LCP, CLS, INP). בנוסף, hCaptcha לא דורשת חשבון Google, מה שמפשט את תהליך ההרשמה למשתמשים.
גרסת ה-hCaptcha Enterprise מאפשרת חוקים מותאמים אישית: לדוגמה, להציג אתגר מורכב רק עבור כתובות IP חשודות, ו-Invisible עבור אחרים. ה-API מחזיר נתונים אנליטיים על אחוז תעבורת הונאה וזמן פתרון. לפי הבדיקות שלנו, Invisible חוסמת 95% מהבוטים ללא אינטראקציה של המשתמש, בעוד ש-reCAPTCHA חוסמת בדרך כלל רק 70% (טוב פי 1.36).
איך אנחנו מגדירים hCaptcha
אנחנו בוחרים את הגרסה לפי המשימה: לטפסי משוב — Checkbox, לדפים עם תעבורה גבוהה — Invisible, לפורטלים ארגוניים — Enterprise עם חוקים מותאמים אישית. התהליך כולל:
- רישום אתר ב-hCaptcha וקבלת מפתחות.
- שילוב בצד הלקוח (React, Vue, או HTML פשוט).
- אימות בצד השרת (Laravel, Node.js, Django).
- בדיקות בתרחישים שונים (VPN, דפדפנים שונים).
אימות בצד השרת הוא חובה: לאחר קבלת טוקן מהלקוח, השרת שולח בקשת POST אל https://hcaptcha.com/siteverify עם הפרמטרים secret, response ו-remoteip. ה-API מחזיר JSON עם השדה success. אנחנו מטפלים ב-timeouts ובניסיונות חוזרים בשגיאות רשת — כך שהטופס נכשל בצורה חלקה אם hCaptcha לא זמינה.
דוגמה לשילוב Checkbox
<script src="https://js.hcaptcha.com/1/api.js" async defer></script>
<form method="POST" action="/contact">
<input type="text" name="email" required>
<div class="h-captcha" data-sitekey="YOUR_SITE_KEY"></div>
<button type="submit">Отправить</button>
</form> hCaptcha Invisible
<script src="https://js.hcaptcha.com/1/api.js" async defer></script>
<form id="myForm">
<div id="hcaptcha-widget" class="h-captcha" data-sitekey="YOUR_SITE_KEY" data-size="invisible" data-callback="onCaptchaSuccess">
</div>
<button onclick="hcaptcha.execute()">Отправить</button>
</form>
<script>
function onCaptchaSuccess(token) {
document.getElementById('myForm').submit();
}
</script> אימות בצד השרת ב-Laravel
// app/Rules/HcaptchaRule.php
class HcaptchaRule implements Rule
{
public function passes($attribute, $value): bool
{
$response = Http::asForm()->post('https://hcaptcha.com/siteverify', [
'secret' => config('services.hcaptcha.secret'),
'response' => $value,
'remoteip' => request()->ip(),
]);
return $response->json('success') === true;
}
public function message(): string
{
return 'Проверка hCaptcha не пройдена.';
}
}
// В контроллере
$request->validate([
'email' => 'required|email',
'h-captcha-response' => ['required', new HcaptchaRule],
]); רכיב React
import HCaptcha from '@hcaptcha/react-hcaptcha';
function Form() {
const captchaRef = useRef(null);
const [captchaToken, setCaptchaToken] = useState(null);
return (
<form onSubmit={handleSubmit}>
<HCaptcha
ref={captchaRef}
sitekey={process.env.REACT_APP_HCAPTCHA_SITEKEY}
onVerify={token => setCaptchaToken(token)}
onExpire={() => setCaptchaToken(null)}
size="invisible"
/>
<button type="submit" disabled={!captchaToken}>
Отправить
</button>
</form>
);
} מה כלול בעבודה במפתחות מלאים
- בדיקת טפסים קיימים ובחירת גרסת hCaptcha.
- שילוב בצד הלקוח (React, Vue, Angular, או HTML).
- אימות בצד השרת עם טיפול בשגיאות (timeouts, ניסיונות חוזרים).
- בדיקות בתרחישים שונים (מובייל, VPN, דפדפנים ישנים).
- תיעוד תפעולי וחודש תמיכה אחד.
טעויות הגדרה נפוצות
- דילוג על אימות בצד השרת — ניתן לעקוף את הטופס.
- מפתח סודי שגוי — האימות תמיד מחזיר false.
- אי טיפול ב-callback של
<script src="https://js.hcaptcha.com/1/api.js" async defer></script> <form method="POST" action="/contact"> <input type="text" name="email" required> <div class="h-captcha" data-sitekey="YOUR_SITE_KEY"></div> <button type="submit">Отправить</button> </form>— הטוקן עלול לפוג לפני שליחת הטופס. - חוסר CORS ל-API (בשימוש ב-SPA).
- שימוש במפתח בדיקה בייצור — כל האימותים יעברו.
לוח זמנים ועלות
השילוב אורך 4 עד 8 שעות לגרסה הבסיסית. העלות מחושבת באופן אישי לפי מורכבות (Enterprise, טפסים מרובים, עיצובים מותאמים), החל מ-$250 לשילוב בסיסי. הלקוחות שלנו חוסכים בדרך כלל $500 בחודש על הוצאות פרסום ב-Google לאחר המעבר. קבלו ייעוץ — נבדוק את הפרויקט שלכם תוך יום אחד.
השוואת גרסאות hCaptcha
| תכונה | Checkbox | Invisible | Enterprise |
|---|---|---|---|
| אינטראקציה | המשתמש לוחץ על תיבת הסימון | ניתוח ברקע | סוגי אתגרים שונים |
| הגנה | בסיסית | בינונית | גבוהה |
| השפעה על חוויית המשתמש | מינימלית | אין | ניתנת להגדרה |
| עלות | חינם | חינם | בתשלום (באופן אישי) |
פרמטרי שילוב לפריימוורקים שונים
| פריימוורק | חבילה | מורכבות |
|---|---|---|
| React | @hcaptcha/react-hcaptcha | נמוכה |
| Vue | @hcaptcha/vue-hcaptcha | נמוכה |
| Angular | angular-hcaptcha | בינונית |
| Laravel | חוק מותאם אישית | בינונית |
אחריות על עבודת hCaptcha
כן, אנחנו מבטיחים פעולה תקינה של hCaptcha למשך 30 יום לאחר היישום. אם יתעוררו בעיות עם אימות או תאימות, נתקן אותן ללא עלות.







