> For the complete documentation index, see [llms.txt](https://learn.devlabss.my.id/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.devlabss.my.id/php/bab-6-penanganan-form/6.3-keamanan-and-sanitasi-input.md).

# 6.3 Keamanan & Sanitasi Input

Input pengguna tidak boleh langsung dipercaya.

Pada bagian ini, Anda belajar sanitasi dasar untuk mengurangi risiko data kotor atau berbahaya.

### Tujuan belajar

Setelah mempelajari bagian ini, Anda diharapkan bisa:

* memahami kenapa input perlu dibersihkan
* melakukan sanitasi dasar pada input
* membedakan sanitasi dan validasi

### Kenapa input perlu dibersihkan

Pengguna bisa mengetik apa saja.

Data bisa saja kosong, berisi spasi berlebih, atau mengandung karakter yang tidak diinginkan.

Karena itu, input perlu dibersihkan sebelum dipakai atau ditampilkan kembali.

### Sanitasi dasar yang sering dipakai

#### `trim()`

Menghapus spasi di awal dan akhir teks.

```php
<?php
$nama = trim($_POST["nama"]);
?>
```

#### `htmlspecialchars()`

Mengubah karakter tertentu agar lebih aman saat ditampilkan kembali.

```php
<?php
$nama = htmlspecialchars($_POST["nama"]);
echo $nama;
?>
```

#### Gabungan sederhana

```php
<?php
$nama = htmlspecialchars(trim($_POST["nama"]));
echo $nama;
?>
```

### Bedanya sanitasi dan validasi

Bedanya sederhana:

* sanitasi membersihkan data
* validasi memeriksa apakah data sesuai aturan

Contohnya, `trim()` membersihkan spasi. Lalu pengecekan panjang nama termasuk validasi.

### Contoh kasus sederhana

```php
<?php
if (isset($_POST["nama"])) {
    $nama = htmlspecialchars(trim($_POST["nama"]));
    echo "Nama: " . $nama;
}
?>
```

### Hal yang perlu dibiasakan

Biasakan alur ini setiap menerima input:

1. cek apakah data ada
2. bersihkan datanya
3. validasi isinya
4. baru proses atau tampilkan

### Kesalahan umum

* langsung menampilkan input mentah
* mengira sanitasi sama dengan validasi
* membersihkan data tetapi tidak mengecek isinya

### Latihan singkat

Buat contoh program yang menerima:

* nama
* email

Lalu bersihkan keduanya sebelum ditampilkan kembali.

### Poin evaluasi bab 6.3.

Pastikan Anda sudah memahami poin berikut:

* Saya paham input pengguna tidak boleh langsung dipercaya.
* Saya bisa memakai `trim()` dan `htmlspecialchars()`.
* Saya tahu perbedaan sanitasi dan validasi.
* Saya bisa membersihkan data sebelum memprosesnya.

Jika semua sudah jelas, lanjut ke [6.4 Validasi Form Sederhana](/php/bab-6-penanganan-form/6.4-validasi-form-sederhana.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.devlabss.my.id/php/bab-6-penanganan-form/6.3-keamanan-and-sanitasi-input.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
