MCP Academy · Pelajaran

Memvalidasi dan Membersihkan Semuanya

Perlakukan input dari model sebagai input yang tidak tepercaya.

Pelajaran 3 dari 413 langkah

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. ✅

Gratis untuk memulai

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

  1. Ancaman Unik pada MCP
  2. Akses Alat dengan Hak Istimewa Minimum
  3. Memvalidasi dan Membersihkan Semuanya
  4. Melindungi Tindakan yang Merusak
← Kembali ke MCP Academy