Melindungi Situs dari Clickjacking attack di Nginx
Berawal dari masalah situs teman saya Ramdziana Feri Yustitianto pemilik situs kabarlinux.web.id yang mana situsnya tersebut di-iframe-kan secara menyeluruh oleh situs lain. Akibatnya, domain lain dapat mengakses situs kabarlinux tersebut tanpa harus masuk ke laman aslinya.
Berikut ini saya sedikit berikan pengenalan mengenai apa itu Clickjacking attact
. Clickjacking attact
atau dikenal juga dengan sebutan UI redress attact
adalah serangan yang memanfaatkan lapisan transparan yang mana bertujuan mengelabui agar ketika pengguna mengklik tombol atau tautan pada situs lain seakan seperti situs asli. Dengan demikian, penyerang bermaksud membajak situs tersebut dengan routing mereka ke situs lain, kemungkinan besar dimiliki oleh aplikasi lain, domain, atau keduanya. Teknik umum yang mereka lakukan adalah dengan teknik iframe
.
Gambaran teknik dari clickjacking attact seperti berikut:
Sumber gambar dari: https://4.bp.blogspot.com/_yNUEUpiUj0A/S-tzfELyenI/AAAAAAAAHP0/FWCRi9frdgM/s1600/Clickjacking_diagram-724769.jpg
Tulisan kali ini saya akan memberikan sedikit tips trik mengenai cara mengamankan situs Anda, khusus untuk pengguna Nginx, dengan memanfaatkan fungsi X-Frame-Options
di header
suatu situs dari pengaturan Nginx.
Pertama-tama kita masuk ke Pengaturan Nginx. Perlu diketahui beberapa distro meletakan konfigurasi Ngix di lokasi yang berbeda-beda.
Konfigurasi hampir di semua distro GNU/Linux mainstream.
sudo vi /etc/nginx/nginx.conf
Khusus untuk pengguna Debian/Ubuntu atau derivatifnya. Anda bisa memasang pada konfigurasi di atas atau juga bisa pada setiap virtualhost. Yakni:
sudo nano /etc/nginx/sites-availables/default
Setelah itu tambahkan:
server { ... add_header X-Frame-Options "SAMEORIGIN"; ... }
Lihat seperti gambar di bawah ini:
Berikut ini ada tiga opsi dalam menetapkan pada X-frame-options:
- SAMEORIGIN Pengaturan ini hanya membolehkan pada halaman dirinya sendiri atau halaman original
- DENY Pengaturan ini akan menolak suatu halaman yang menampilkan situs Anda dalam suatau frame atau iframe.
- ALLOW-FROM URI Pengaturan ini hanya membolehkan mempilkan dari tautan spesifik halaman original.
Jika sudah seperti gambar di atas, langsung saja Anda restart Nginx Anda:
Pengguna Systemd
sudo systemctl restart nginx
Pengguna Non Systemd
sudo service nginx restart
Untuk mengetahui apakah Anda sudah berhasil melindungi situs Anda dari Clickjacking Attack
. Coba buat berkas HTML dengan kode di bawah ini:
<DOCTYPE html>
<head>
<title>Test</title>
</head>
<frameset rows="100%,*" border="0">
<frame src="https://situsAnda.com" frameborder="0" />
</frameset>
</html>
Jika hanya menampilkan whitescreen (halaman putih) artinya Anda telah sukses.
Semoga bermanfaat 😬
Sumber
Tulisan ini bersumber dari tulisan saya sendiri yang sebelumnya saya tulis di Linuxku.com (https://www.linuxku.com/2016/10/melindungi-situs-dari-clickjacking.html) . Saya tuliskan ulang di sini, dengan sedikit penyuntingan.