CAPTCHA Validation
Forms को CAPTCHA क्यों चाहिए
Automated bots आपके forms को नकली signups, spam comments और बेकार messages से भर सकते हैं। CAPTCHA एक छोटी चुनौती है जो इंसान आसानी से पास कर ले पर bot नहीं — जैसे एक सरल sum हल करना। एक जोड़ना आपके forms को बिना ज़्यादा मेहनत साफ़ रखता है।
एक सरल math CAPTCHA
<?php
session_start();
$a = random_int(1, 9);
$b = random_int(1, 9);
$_SESSION["captcha"] = $a + $b; // जवाब store
echo "What is $a + $b?"; // सवाल दिखाओ
?>
हम दो random numbers चुनते हैं, उनका sum session में store करते हैं, और सवाल दिखाते हैं। User सिर्फ़ सवाल देखता है, जवाब कभी नहीं।
जवाब सुरक्षित store करना
ध्यान दीजिए जवाब $_SESSION में गया — server-side। यह ज़रूरी है: अगर आप जवाब hidden field या cookie में डालें, तो bot उसे पढ़ सकता है। इसे session में रखना मतलब सिर्फ़ आपकी PHP को सही value पता है।
जवाब verify करना
<?php
session_start();
$answer = $_POST["captcha"] ?? "";
if ($answer == ($_SESSION["captcha"] ?? null)) {
echo "CAPTCHA passed - likely human";
// form processing जारी रखें
} else {
echo "Wrong answer - try again";
}
?>
भेजे गए जवाब की store वाले से तुलना कीजिए। मेल पर, उसे इंसान मानकर form process कीजिए; वरना, ठुकराकर दोबारा पूछिए।
reCAPTCHA कब इस्तेमाल करें
सरल math CAPTCHA सीखने और कम-traffic forms के लिए बढ़िया है। पर दृढ़ bots कभी-कभी इसे हरा सकते हैं। ज़रूरी public forms के लिए — व्यस्त sites पर signups, contact pages — Google reCAPTCHA इस्तेमाल कीजिए, जो bots के लिए बहुत मुश्किल और अक्सर असली users को अदृश्य है।
आम गलतियाँ
- जवाब client-side store करना। hidden field या cookie को bots पढ़ सकते हैं — session इस्तेमाल कीजिए।
- Numbers के लिए
rand()। कम predictable चुनौतियों कोrandom_intबेहतर। - सिर्फ़ CAPTCHA पर भरोसा। फिर भी input validate कीजिए और prepared statements इस्तेमाल कीजिए।
- इसे बहुत मुश्किल बनाना। असली users को परेशान करता CAPTCHA फ़ायदे से ज़्यादा नुकसान करता है।
सारांश
- CAPTCHA इंसानों के लिए आसान चुनौती से bots रोकता है।
- एक सरल सवाल generate कीजिए और जवाब session में store कीजिए।
- सिर्फ़ सवाल दिखाइए; जवाब server-side रखिए।
- Verify को user के जवाब की store वाले से तुलना कीजिए।
- ज़रूरी, high-traffic public forms के लिए Google reCAPTCHA इस्तेमाल कीजिए।
आगे, बाक़ी form validate कीजिए form validation से, या इसे सुरक्षित कीजिए XSS prevention से।
