Skip to content

lockonzoom/detectSQLInjection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

การตรวจจับ SQL Injection และ JavaScript Injection ด้วย PHP

สคริปต์นี้เป็นตัวอย่างการตรวจจับ SQL Injection และ JavaScript Injection ในข้อมูลที่ได้รับจากผู้ใช้งานผ่านทาง POST และ GET requests โดยใช้ภาษา PHP เพื่อช่วยป้องกันความปลอดภัยในแอปพลิเคชันของคุณ


คุณสมบัติของสคริปต์

  1. ตรวจจับคำสั่งที่มักเกี่ยวข้องกับ SQL Injection เช่น SELECT, UNION, INSERT, DROP, และคำสั่งอื่น ๆ
  2. ตรวจจับโค้ด JavaScript Injection เช่น <script>, onerror, javascript: และคำสั่งอื่น ๆ ที่เป็นอันตราย
  3. ใช้ฟังก์ชัน preg_match() ในการตรวจจับคำที่มีความเสี่ยงในข้อมูลที่ได้รับจาก POST และ GET

การใช้งาน

  1. วางไฟล์ PHP นี้ในโฟลเดอร์โปรเจกต์ของคุณ
  2. เรียกใช้งานโดยการส่งข้อมูลผ่าน POST หรือ GET
  3. สคริปต์จะทำการตรวจสอบข้อมูล และแสดงผลว่า พบคำที่อาจเป็นอันตราย หรือไม่

โครงสร้างฟังก์ชัน

1. detectSQLInjection($input)

  • ฟังก์ชันนี้ใช้เพื่อตรวจจับคำหรือรูปแบบที่เกี่ยวข้องกับ SQL Injection และ JavaScript Injection
  • ใช้ preg_match() เพื่อค้นหารูปแบบที่ตรงกับ $patterns
function detectSQLInjection($input) {
    $patterns = [
        // ตัวอย่างรูปแบบที่ตรวจจับ
        '/\bSELECT\b/i',
        '/\bUNION\b/i',
        '/<script\b[^>]*>/i',
        '/\bon\w+=/i'
        // เพิ่มรูปแบบตามที่ต้องการ
    ];

    foreach ($patterns as $pattern) {
        if (preg_match($pattern, $input)) {
            return true;
        }
    }

    return false;
}

2. checkRequestForSQLInjection()

  • ฟังก์ชันนี้ตรวจสอบข้อมูลที่รับมาจาก POST และ GET
  • หากพบคำต้องสงสัย จะส่งข้อความแจ้งเตือนว่าพบ SQL Injection ในคีย์ที่ระบุ

ตัวอย่างผลลัพธ์

กรณีที่ตรวจไม่พบคำต้องสงสัย

No SQL Injection Detected.

กรณีที่ตรวจพบคำต้องสงสัย

SQL Injection Detected in POST: username

การนำไปใช้งานในระบบจริง

  1. เพิ่มฟังก์ชันนี้ในไฟล์ PHP ที่ต้องการ
  2. ใช้ร่วมกับการ Sanitize ข้อมูลผู้ใช้ เช่น htmlspecialchars() หรือ mysqli_real_escape_string() เพื่อเพิ่มความปลอดภัย
  3. ใช้ Library หรือ Framework เช่น PDO หรือ ORM เพื่อป้องกัน SQL Injection อย่างเป็นระบบ

ข้อควรระวัง

  • ฟังก์ชันนี้เป็นการตรวจจับเบื้องต้นเท่านั้น หากต้องการความปลอดภัยที่สมบูรณ์ ควรใช้วิธีการป้องกันที่เหมาะสมเพิ่มเติม เช่น การใช้ Prepared Statements หรือ Frameworks ที่มีระบบความปลอดภัยในตัว
  • ควรอัปเดตรูปแบบคำต้องสงสัย ($patterns) ตามความเสี่ยงที่อาจเกิดขึ้นในแอปพลิเคชันของคุณ

License

คุณสามารถใช้และปรับแต่งโค้ดนี้ได้ฟรีเพื่อการศึกษาและพัฒนาระบบความปลอดภัยในแอปพลิเคชันของคุณ

About

สคริปต์นี้เป็นตัวอย่างการตรวจจับ SQL Injection และ JavaScript Injection ในข้อมูลที่ได้รับจากผู้ใช้งานผ่านทาง POST และ GET requests โดยใช้ภาษา PHP เพื่อช่วยป้องกันความปลอดภัย

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages