MCP Academy · บทเรียน

เปิดเผยคำค้น SQL อย่างปลอดภัย

ให้เข้าถึงฐานข้อมูลแบบอ่านอย่างเดียวโดยไม่มีการฉีดคำสั่ง

บทเรียน 1 จาก 413 ขั้นตอน

เปิดเผยคำค้น SQL อย่างปลอดภัย เป็นบทเรียน MCP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MCP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน

ฐานข้อมูลเบื้องหลังเครื่องมือ

เซิร์ฟเวอร์ MCP สามารถให้ข้อมูลจริงแก่โมเดลได้ด้วยการนำ ฐานข้อมูล ไว้เบื้องหลังเครื่องมือ ทำให้ AI ถามคำถามแทนการเข้าถึงตารางดิบโดยตรง 🗄️

อ่านได้ ไม่เขียน

เพื่อความปลอดภัย ให้เริ่มด้วยการเปิดให้เข้าถึงแบบ อ่านเท่านั้น ให้โมเดลค้นหาและรายงานข้อมูลได้ แต่ปิดการเพิ่ม แก้ไข และลบข้อมูลไว้

อันตรายจากการแทรกคำสั่ง

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

query = "SELECT * FROM users WHERE id = " + user_input  # unsafe!

ใช้คำค้นแบบมีพารามิเตอร์

วิธีแก้คือใช้ คำค้นแบบมีพารามิเตอร์ โดยเขียนตัวแทนค่า แล้วให้ไดรเวอร์ผูกค่าอย่างปลอดภัย ทำให้อินพุตไม่สามารถเปลี่ยนรูปแบบคำค้นได้

cur.execute("SELECT * FROM users WHERE id = ?", (user_id,))

รับค่าเป็นอาร์กิวเมนต์

ให้โมเดลส่งค่าเป็น อาร์กิวเมนต์ ที่มีชนิดข้อมูลกำกับ จากนั้นคุณจึงสร้างคำค้น โมเดลส่งข้อมูลมาเท่านั้น ไม่ใช่ข้อความ SQL เอง

@mcp.tool()
def find_user(user_id: int) -> str:
    ...

กำหนดรูปแบบคำค้นให้ตายตัว

เก็บ SQL ที่ ตายตัว ไว้ในโค้ด และใส่เฉพาะพารามิเตอร์ที่ผูกค่าแล้วเท่านั้น การล็อกรูปแบบคำค้นเป็นวิธีที่ง่ายที่สุดในการรักษาความปลอดภัย

ใช้บทบาทแบบอ่านอย่างเดียว

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

จำกัดขนาดผลลัพธ์

จำกัดจำนวนแถวด้วย LIMIT เสมอ เพื่อไม่ให้คำค้นที่กว้างเกินไปดึงข้อมูลตารางขนาดใหญ่เข้าสู่โมเดลจนใช้โควตาโทเคนเกินกำหนด

cur.execute("SELECT name FROM users LIMIT 50")

อนุญาตเฉพาะตารางที่กำหนด

หากโมเดลเลือกตาราง ให้ตรวจสอบกับ รายการที่อนุญาต ปฏิเสธทุกสิ่งที่ไม่อยู่ในรายการ แทนที่จะเชื่อชื่อที่ได้รับทันที

ส่งคืนแถวข้อมูลอย่างเป็นระเบียบ

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

ซ่อนคอลัมน์ที่ละเอียดอ่อน

เลือกเฉพาะคอลัมน์ที่งานต้องใช้ การไม่นำ ข้อมูลลับ เช่น ค่าแฮชรหัสผ่านออกมา จะช่วยเก็บข้อมูลส่วนตัวให้พ้นจากโมเดลโดยสิ้นเชิง

ตรวจสอบความเข้าใจ

สิ่งใดช่วยป้องกันเครื่องมือ SQL จากการแทรกคำสั่ง

สรุป: SQL ที่ปลอดภัย

คุณเปิดให้ใช้ฐานข้อมูลอย่างปลอดภัยแล้ว ได้แก่ คำค้นแบบอ่านอย่างเดียวที่มี พารามิเตอร์ ตารางที่อยู่ในรายการอนุญาต และการจำกัดจำนวนแถว ต่อไปคือการห่อส่วนติดต่อเว็บ API 🎯

เริ่มต้นได้ฟรี

เรียนรู้ Python ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “เปิดเผยคำค้น SQL อย่างปลอดภัย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เปิดเผยคำค้น SQL อย่างปลอดภัย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MCP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เปิดเผยคำค้น SQL อย่างปลอดภัย”

ให้เข้าถึงฐานข้อมูลแบบอ่านอย่างเดียวโดยไม่มีการฉีดคำสั่ง คุณปฏิบัติ MCP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MCP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน MCP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “เปิดเผยคำค้น SQL อย่างปลอดภัย” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน MCP Academy นี้ได้ไหม

ได้ บทเรียน MCP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เปิดเผยคำค้น SQL อย่างปลอดภัย
  2. ห่อ REST API เป็นเครื่องมือ
  3. รวมกลุ่มการเชื่อมต่อในช่วงอายุการใช้งาน
  4. แคชและจำกัดอัตราของระบบต้นทาง
← กลับไปที่ MCP Academy