• February 7, 2024

    การโจมตีแบบ Brute force โดยใช้ IP address ที่ต่างกัน กด submit form จำนวนมาก เป็นปัญหาที่พบได้บ่อย Honeypot สามารถช่วยป้องกันปัญหานี้ได้

    Honeypot คือ ฟิลด์ที่ซ่อนอยู่ใน form ซึ่งมองไม่เห็นโดยผู้ใช้ทั่วไป แต่ bots จะมองเห็นและกรอกข้อมูลในฟิลด์นี้ เมื่อ bots กรอกข้อมูลใน honeypot แสดงว่าเป็น bots

    วิธีการใช้ honeypot:

    1. เพิ่มฟิลด์ type=”hidden” ลงใน form ของคุณ
    2. ตั้งชื่อฟิลด์ให้เป็นชื่อที่ bots น่าจะกรอก เช่น “username” หรือ “password”
    3. ตั้งค่า CSS ของฟิลด์ให้ display: none;
    4. ตรวจสอบค่าของฟิลด์ honeypot ก่อน submit form
    5. ถ้าฟิลด์ honeypot มีค่า แสดงว่าเป็น bots ให้แสดงข้อความแจ้งเตือน หรือ ปิดกั้นการ submit form

    ตัวอย่าง:

    HTML

    <form action="/submit">
      <input type="text" name="name">
      <input type="email" name="email">
      <input type="hidden" name="honeypot" style="display: none;">
      <button type="submit">Submit</button>
    </form>
    

    Use code with caution. Learn morecontent_copy

    JavaScript

    const form = document.getElementById("form");
    form.addEventListener("submit", (event) => {
      const honeypot = document.getElementById("honeypot");
      if (honeypot.value) {
        event.preventDefault();
        alert("คุณเป็น bot!");
      }
    });
    

    Use code with caution. Learn morecontent_copy

    ข้อควรระวัง:

    • Honeypot อาจไม่สะดวกสำหรับผู้ใช้บางราย
    • Bots ที่มีความซับซ้อนอาจสามารถหลีกเลี่ยง honeypot ได้

    วิธีการอื่นๆ:

    • ใช้ reCAPTCHA
    • ใช้ CAPTCHA

    สรุป:

    Honeypot เป็นวิธีการป้องกันการโจมตีแบบ Brute force ที่ง่ายและมีประสิทธิภาพ แต่ควรใช้วิธีการอื่นร่วมด้วยเพื่อเพิ่มความปลอดภัย

    เราสามารถเปลี่ยนแจ้งเตือนเป็นปิดกั้นไม่ให้เข้าถึง domain นี้เลย โดยใช้ Javascript ดังนี้

    JavaScript

    const form = document.getElementById("form");
    form.addEventListener("submit", (event) => {
      const honeypot = document.getElementById("honeypot");
      if (honeypot.value) {
        event.preventDefault();
        window.location.href = "https://www.google.com/"; // เปลี่ยน URL นี้เป็น URL ที่คุณต้องการ
      }
    });
    

    Use code with caution. Learn morecontent_copy

    โค้ดด้านบนจะเปลี่ยนเส้นทางผู้ใช้ไปยัง URL ที่กำหนด เมื่อผู้ใช้พยายาม submit form

    วิธีการอื่นๆ:

    • ตั้งค่า HTTP header “Location” ไปยัง URL ที่ต้องการ
    • ใช้ Javascript redirect ผู้ใช้ไปยัง URL ที่ต้องการ

    ตัวอย่างการตั้งค่า HTTP header:

    PHP

    <?php
    if (isset($_POST["honeypot"]) && $_POST["honeypot"] != "") {
      header("Location: https://www.google.com/");
      exit;
    }
    ?>
    
    <form action="/submit" method="post">
      <input type="text" name="name">
      <input type="email" name="email">
      <input type="hidden" name="honeypot" style="display: none;">
      <button type="submit">Submit</button>
    </form>
    

    Use code with caution. Learn morecontent_copy

    ตัวอย่างการใช้ Javascript redirect:

    JavaScript

    const form = document.getElementById("form");
    form.addEventListener("submit", (event) => {
      const honeypot = document.getElementById("honeypot");
      if (honeypot.value) {
        event.preventDefault();
        window.location.href = "https://www.google.com/"; // เปลี่ยน URL นี้เป็น URL ที่คุณต้องการ
      }
    });
    

    Use code with caution. Learn morecontent_copy

    ข้อควรระวัง:

    • การปิดกั้นการเข้าถึง domain อาจไม่สะดวกสำหรับผู้ใช้บางราย
    • ผู้ใช้ที่ไม่ประสงค์ร้ายอาจถูกปิดกั้นโดยไม่ได้ตั้งใจ

    สรุป:

    เราสามารถปิดกั้นไม่ให้ผู้ใช้เข้าถึง domain นี้ โดยใช้ Javascript หรือตั้งค่า HTTP header “Location” แต่ควรใช้วิธีการเหล่านี้อย่างระมัดระวัง



เวอไนน์ไอคอร์ส

ประหยัดเวลากว่า 100 เท่า!






เวอไนน์เว็บไซต์⚡️
สร้างเว็บไซต์ ดูแลเว็บไซต์

Categories