Senin, 12 September 2016

Ini Dia Cara Mencegah XSS Attack Di PHP

Tags

Hallo sahabat Belajarphplengkap.com pada tutorial PHP ini kita akan mempelajari cara mencegah XSS Attack di PHP. Ini merupakan salah satu materi keamanan website yang wajib Anda ketahui.

XSS adalah kependekan dari Cross Side Scripting. XSS merupakan salah satu jenis serangan injeksi code (code injection attack). Serangan menggunakan teknik XSS (XSS Attack) ini banyak digunakan oleh penyerang untuk menyerang website yang dijadikan targetnya. Penyerang biasanya akan memasukan tag atau script HTML ke dalam suatu website dengan tujuan tertentu seperti mencuri cookie pengguna, meredirect ke website tertentu dan lain-lain.

Cara Mencegah XSS Attack Di PHP

Contoh kasus pada tutorial ini kita akan melumpuhkan script XSS yang dikirim melalui form komentar. Berikut langkah-langkahnya:
  1. Buat sebuah folder dengan nama ‘latihan’ di dalam folder htdocs (C:\xampp\htdocs).
  2. Buka editor di PC Anda, lalu ketikan atau copy script di bawah ini. Jika sudah, simpan dengan nama file ‘form_komentar.php’ di dalam folder latihan.
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Form Komentar</title>
        <style>
          label { display: inline-block; width: 70px; margin-bottom: 10px; }
        </style>
      </head>
      <body>
       <h1>Form Komentar</h1>
        <form method="post" action="tampilkan_komentar.php">
          <label for="nama">Nama</label> : <input type="text" name="nama" id="nama" size="50" maxlength="50" /> <br />
          <label for="email">Email</label> : <input type="email" name="email" id="email" size="50" maxlength="100" /> <br />
          <label for="website">Website</label> : <input type="url" name="website" id="website" size="50" maxlength="100" /> <br />
          <label for="komentar">Komentar</label> : <textarea name="komentar" id="komentar" rows="6" cols="50"></textarea> <br />
          <input type="submit" value="Kirim" />
        </form>
      </body>
    </html>

    Script di atas untuk membuat form komentar.
  3. Ketikan atau copy script di bawah ini dan simpan dengan nama file ‘tampilkan_komentar.php’ di dalam folder latihan.
    <?php
      $nama = isset($_POST['nama']) ? $_POST['nama'] : '';
      $email = isset($_POST['email']) ? $_POST['email'] : '';
      $website = isset($_POST['website']) ? $_POST['website'] : '';
      $komentar = isset($_POST['komentar']) ? $_POST['komentar'] : '';
    
      echo "Nama: " . $nama . "<br />";
      echo "Email: " . $email . "<br />";
      echo "Website: " . $website . "<br />";
      echo "Komentar: " . $komentar;
    ?>

    Script di atas untuk menerima inputan yang dikirim melalui form komentar seperti nama, email, website dan komentar.
  4. Buka browser di PC Anda, lalu ketikan http://localhost/latihan/form_komentar.php. Silahkan isi nama Anda pada kolom nama. Begitu juga untuk email dan website. Pada kolom komentar silahkan isi dengan script di bawah ini.
    <script>window.location.href = "https://www.google.com";</script>

    Jika sudah, klik tombol kirim. Lihat apa yang terjadi! Ya, kita akan diredirect ke website google.com.
  5. Untuk mencegah XSS Attack, silahkan edit script yang ada di dalam file tampilkan_komentar.php seperti script di bawah ini.
    <?php
      
      function antiInjection($str) {
        $r = stripslashes(strip_tags(htmlspecialchars($str, ENT_QUOTES)));
        return $r;
      }
      
      $nama = isset($_POST['nama']) ? antiInjection($_POST['nama']) : '';
      $email = isset($_POST['email']) ? antiInjection($_POST['email']) : '';
      $website = isset($_POST['website']) ? antiInjection($_POST['website']) : '';
      $komentar = isset($_POST['komentar']) ? antiInjection($_POST['komentar']) : '';
    
      echo "Nama: " . $nama . "<br />";
      echo "Email: " . $email . "<br />";
      echo "Website: " . $website . "<br />";
      echo "Komentar: " . $komentar;
    
    ?>
  6. Kemudian ulangi kembali langkah pada point no. 4. Ya, sekarang script XSS berhasil dicegah.
Itulah cara mencegah XSS Attack di PHP. Semoga bermanfaat untuk Anda. Jangan lupa baca juga tutorial sebelumnya menghitung umur berdasarkan tanggal lahir dengan PHP.

Artikel Terkait

Tambahkan komentar Anda
EmoticonEmoticon