วิธีเช็ค reCaptcha (รีแคปช่า) ใน joomla
Captcha (แคปช่า) ย่อมาจาก Completely Automated Public Turing Computer and Humans Apart โดยตัว reCaptcha (รีแคปช่า) จะเป็นตัวที่เช็คว่าคนที่เข้ามาใช้งานเป็นคนจริงๆไม่ใช่โปรแกรมอัตโนมัติ (Bot) โดยเราสามารถเช็คได้ว่าเมื่อผู้ใช้งานกด submit มานั้นมีค่าของตัว reCaptcha (รีแคปช่า) มาหรือไม่โดยใน Joomla จะสามารถเช็คเมื่อฟอร์มส่งค่าไปยัง controllers โดยจะสร้างเงื่อนไขเช็คในฟังก์ชันอีกทีนึงสามารถทำได้ดังนี้
วิธีการเช็ค reCaptcha (รีแคปช่า) ดังนี้
- ทำการสมัคร google reCaptcha ดังรูป
- จากนั้นนำโค้ดที่ได้ไปแปะในไฟล์ default.php ที่อยู่ในโฟลเดอร์ tmpl ที่อยู่ในโฟลเดอร์ view อีกทีนึง
โค้ดที่เอาไปใช้ใน view - จากนั้นก็ไปสร้างเงื่อนไขในฟังก์ชันที่ฟอร์มเรียกใช้ ดังโค้ด
$name = $post->get('name'); $cappv = $post->get('g-recaptcha-response'); $url = JRoute::_("index.php?option=com_mindphptest&view=mindtest"); $msg = 'กรุณายืนยันตัวตนก่อน'; $accountingpv; $captcha; if(isset($name)){ $accountingpv = $name; }if(isset($cappv)){ $captcha = $cappv; }if(!$captcha){ //หากไม่ยืนยันตัวตนก็จะแสดงข้อความแจ้งว่ากรุณายืนยันตัวตนก่อนและจะกลับมายังหน้าฟอร์มอีกครั้งตาม url ที่ระบุไป $this->setRedirect($url, $msg); return false; } $secretkey= 'ระบุ secret (required) key'; $ip = $_SERVER['REMOTE_ADDR']; $response = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secretkey.'&response='.$captcha.'&remoteip='.$ip); $responseKeys = json_decode($response,true);
ในการเช็คตัวรีแคปช่ามันมีข้อดีตรงที่ในการที่จะบันทึกข้อมูลลงฐานข้อมูลนั้น เราก็ต้องเช็คความปลอดภัยในการที่จะบันทึกข้อมูลลงในฐานข้อมูลได้ เพราะหากเจอโปรแกรมที่ทำงานอัตโนมัตพวกโปรแกรมแบบนี้จะกรอกข้อมูลลงในฟอร์มแล้วกดปุ่ม submit หากฟอร์มไหนไม่ทำตัวรีแคปช่าดัก เมื่อโปรแกรมอัตโนมัต (Spam) มาเพิ่มข้อมูลอะไรไปหรือมาทำการสมัครก็จะมีการบันทึกข้อมูลลงไปได้ และ มันก็จะเป็นอันตรายต่อเว็บเราได้จึงทำให้เราควรที่จะใช้ตัวรีแคปช่าเช็คอีกทีนึงเพื่อป้องกันจากผู้ไม่หวังดี