Memvalidasi dan Membersihkan Semuanya
Perlakukan input dari model sebagai input yang tidak tepercaya.
Memvalidasi dan Membersihkan Semuanya adalah pelajaran MCP Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar MCP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus MCP Academy mencakup 4 pelajaran total.
Input Tidak Tepercaya
Setiap argumen yang diteruskan model ke sebuah tool adalah untrusted input. Model mungkin jujur, tetapi argumennya dapat dibentuk oleh teks yang disisipkan, jadi verifikasilah. 🔎
Validasi Sebelum Bertindak
Periksa bentuk, tipe, dan rentang sebelum sebuah tool melakukan tindakan nyata. Validation di pintu masuk mengubah panggilan buruk yang samar menjadi penolakan yang jelas dan aman.
Biarkan Pydantic Membantu
Petunjuk tipe dan model Pydantic menolak argumen yang formatnya salah sebelum kode Anda berjalan. Input ini harus berupa bilangan bulat positif, jadi string atau nilai negatif akan ditolak sejak awal.
from pydantic import Field
@mcp.tool()
def get_page(n: int = Field(gt=0, le=100)) -> str:
return load(n)Batasi Nilai
Batasi ukuran, panjang, dan jumlah. Bidang batas pada kueri mencegah model meminta sejuta baris dan mengubah satu panggilan menjadi denial of service.
Bersihkan Sesuai Tujuan
Sanitizing berarti membuat input aman untuk tempat input tersebut digunakan. Nilai yang aman di log dapat berbahaya di shell, string SQL, atau jalur berkas.
Jangan Pernah Membuat SQL secara Manual
SQL yang digabungkan sebagai string membuka peluang injeksi. Gunakan parameterized queries agar basis data memperlakukan input model hanya sebagai nilai, bukan kode yang dapat dijalankan.
cur.execute(
"SELECT * FROM orders WHERE id = ?",
(order_id,),
)Lindungi Shell
Jika sebuah tool menjalankan perintah, jangan pernah menempelkan argumen ke dalam string shell. Teruskan argument list dan hindari penguraian shell agar input tidak dapat menyelundupkan perintah tambahan.
Selesaikan dan Batasi Jalur
Untuk tools berkas, selesaikan jalur ke bentuk kanonisnya dan pastikan jalur tersebut tetap berada di dalam root yang diizinkan. Tolak apa pun yang memiliki path traversal seperti titik ganda.
p = (ROOT / name).resolve()
if not p.is_relative_to(ROOT):
raise ValueError("path escapes root")Gagal secara Tertutup
Jika input tidak lolos pemeriksaan, berhenti dan kembalikan kesalahan yang jelas. Failing closed lebih baik daripada menebak, karena tebakan yang salah bisa persis seperti yang diinginkan penyerang.
Jangan Percayai Keluaran Tool
Data yang dikembalikan tool Anda dapat meneruskan instruksi yang disisipkan. Jika penting, beri label atau lakukan escape pada fetched content agar model memperlakukannya sebagai data, bukan perintah.
Validasi di Setiap Batas
Periksa input saat masuk ke tool Anda dan sekali lagi sebelum input mencapai basis data, berkas, atau API. Setiap boundary merupakan kesempatan baru untuk menangkap sesuatu yang tidak aman.
Pemeriksaan Cepat
Pilihan mana yang paling melindungi kueri SQL dari injeksi?
Ringkasan
Perlakukan semua input tool sebagai sesuatu yang tidak tepercaya: validasi tipe dan rentang, bersihkan sesuai tujuan, batasi jalur, dan gagal secara tertutup. Jangan percayai input. ✅
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Memvalidasi dan Membersihkan Semuanya” gratis?
Ya — teks lengkap “Memvalidasi dan Membersihkan Semuanya” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus MCP Academy, upgrade ke CoddyKit PRO. Kursus MCP Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Memvalidasi dan Membersihkan Semuanya”?
Perlakukan input dari model sebagai input yang tidak tepercaya. Kamu berlatih MCP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai MCP Academy?
Tidak diperlukan pengalaman sebelumnya. MCP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Memvalidasi dan Membersihkan Semuanya” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran MCP Academy ini?
Ya. Setiap pelajaran MCP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Ancaman Unik pada MCP
- Akses Alat dengan Hak Istimewa Minimum
- Memvalidasi dan Membersihkan Semuanya
- Melindungi Tindakan yang Merusak