Google reCAPTCHA PHP วิธีป้องกันเว็บไซต์จากบอท

17 มีนาคม 2566
Google reCAPTCHA PHP วิธีป้องกันเว็บไซต์จากบอท

Google reCAPTCHA คือบริการฟรีที่ช่วยปกป้องเว็บไซต์ของคุณจากสแปมและการโจมตีจากผู้ไม่หวังดี ใช้เทคนิคการวิเคราะห์ความเสี่ยงขั้นสูงเพื่อแยกมนุษย์และบอทออกจากกัน ผู้ใช้ปลอมจะถูกบล็อกไม่ให้สามารถใช้แบบฟอร์มบนเว็บไซต์ได้

วีธีการใช้งาน Google reCAPTCHA กับ PHP คุณสามารถวาง Google reCAPTCHA ในเว็บไซต์ PHP ได้อย่างง่ายดาย ในบทความนี้ เราจะพูดถึงวิธีการรวม Google reCAPTCHA v2 ใน PHP โดยมีอยู่ 4 ขั้นตอนดังนี้

ขั้นตอนที่ 1 ลงทะเบียนเว็บไซต์ของคุณที่ Google reCAPTCHA

ลงทะเบียนเว็บไซต์ของคุณที่แพลตฟอร์ม Google reCAPTCHA เพื่อรับคีย์ เช่น รหัสไซต์และรหัสลับที่จำเป็นในการเขียนโค้ดรูปแบบ HTML และ PHP คลิกที่นี่ เพื่อไปที่เว็บไซต์ลงทะเบียน Google reCAPTCHA หลังจากลงทะเบียนเสร็จจะได้รับ site_key นำไปใช้ในขั้นตอนที่ 2 และ secret_key นำไปใช้ในขั้นตอนที่ 4

Google reCAPTCHA

ขั้นตอนที่ 2 สร้างแบบฟอร์ม Google reCAPTCHA ใน HTML

เราจะสร้างแบบฟอร์ม HTML อย่างง่าย โดยใช้หนึ่งช่องป้อนข้อมูล และปุ่ม Submit เราต้องเพิ่มลิงก์ Google reCAPTCHA CDN ในเอกสาร HTML และแท็ก div ในแบบฟอร์มเพื่อรับ reCAPTCHA ในเอกสาร HTML

ลิงก์ CDN: <script src="https://www.google.com/recaptcha/api.js" async defer></script>
แท็ก Div: <div class="g-recaptcha" data-sitekey="your_site_key"></div>
ตัวอย่าง
<!-- Google reCAPTCHA CDN -->
<script src="https://www.google.com/recaptcha/api.js" async defer></script>

<form action="action.php" method="post">
  <input type="text" name="name" id="name" placeholder="Enter Name" required>
  <br>

  <div class="g-recaptcha" data-sitekey="your_site_key"></div>
  <br>

  <button type="submit" name="submit_btn">
    Submit
  </button>
</form>

ขั้นตอนที่ 3 ในส่วน PHP

หลังจากที่เราส่งแบบฟอร์ม HTML เรียบร้อยแล้ว เราก็ทำการเขียนโค้ด PHP รับข้อมูลที่ส่งมาจากแบบฟอร์ม พร้อมกับรับข้อมูล g-recaptcha-response ที่ได้จากการตอบสนองของ Google recaptcha ด้วยเพื่อทำการตรวจสอบต่อไป

// รับข้อมูลในแบบฟอร์ม
$name = $_POST['name'];
    
// ข้อมูลการตอบสนองของ Google recaptcha
// เก็บไว้ในตัวแปร $recaptcha
$recaptcha = $_POST['g-recaptcha-response'];

ขั้นตอนที่ 4 ตรวจสอบ Captcha

ในการยืนยัน Captcha เราจำเป็นต้องส่งคำขอโพสต์ไปยัง URL https://www.google.com/recaptcha/api/siteverify?secret=<secret_key>&response=<response_key> เพื่อทำการตรวจสอบความถูกต้องของ Captcha ที่ได้รับจากแบบฟอร์ม

  • secret_key : ได้รับจากการลงทะเบียนเว็บไซต์ในขั้นตอนที่ 1
  • response_key : ค่าที่ได้รับจากการตอบสนองของ Google recaptcha ในขั้นตอนที่ 3 ที่เก็บไว้ในตัวแปล $recaptcha
$secret_key = 'your_secret_key';
  
// ส่งคำขอตรวจสอบ Captcha
$response = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='. $secret_key . '&response=' . $recaptcha);
$response = json_decode($response);
  
// ตรวจสอบความถูกต้อง
if ($response->success == true) {
// Captcha ถูกต้อง      echo "CAPTACHA verified"; } else {
    // Captcha ไม่ถูกต้อง      echo "คุณไม่ได้ป้อน CAPTCHA อย่างถูกต้อง"; }

นี่เป็นตัวอย่างในการใช้งานพร้อมอธิบาย การใช้งานจริงคุณสามารถออกแบบการใช้งานได้เอง ก็หวังว่าบทความนี้จะเป็นประโยชน์สำหรับทุกท่านที่ได้อ่าน