Tips Jitu Cara Meningkatkan Keamanan Website Berbasis PHP

Pengamanan atau security pada website dari peretas sangatlah penting, entah itu dalam bahasa PHP,...
Penulis
Admin
Kategori
Tutorial
Estimasi
6 menit baca
Dilihat
1.2K
Posting
12 Jul 2022
Tips Jitu Cara Meningkatkan Keamanan Website Berbasis PHP Pengamanan atau security pada website dari peretas sangatlah penting, entah itu dalam bahasa PHP, Ruby, Phyton dll. Hal ini bertujuan untuk menjaga sistem Tips Jitu Cara Meningkatkan Keamanan Website Berbasis PHP
2022-11-25

Sudah menjadi rahasia umum, bahwa hampir semua website didunia ini mengunakan bahasa PHP. Ketika membuat aplikasi atau website, PHP biasanya digunakan sebagai bahasa utama dalam aplikasi website mereka, itu karena PHP bisa disebut sebagai bahasa pemrograman yang mudah dipahami ditambah dengan komunitas yang besar dan luas.

Namun sering kali developer mengabaikan pengamanan atau security pada website, sehingga oknum yang tidak bertanggung jawab bisa membobol sistem dengan mudah.

Itu karena kebanyakan dari developer membuat aplikasi hanya berfokus pada pembuatannya saja dengan harapan aplikasi tersebut dapat berjalan sesuai yang diinginkan atau sesuai dengan alur sistem yang mereka bangun tanpa memikirkan keamanan pada sistem mereka, ini sangat fatal!

Implementasi pengamanan atau security pada situs sangatlah penting, entah itu dalam bahasa pemrograman PHP, Ruby, Phyton dll. Hal ini bertujuan selain menjaga sistem dan juga kepercayaan website kalian dari pengguna.

 

Tips Keamanan Website PHP Dari Serangan Berbahaya

 

 

Jika aplikasi atau website dibuat dengan framework PHP, sebenarnya sudah ada sistem security yang sudah disediakan untuk mengamankan sistem website, namun disayangkan kebanyakan para developer tidak memanfaatkan hal ini.

Sebelum ke tips security, alangkah baiknya kita tahu dulu jenis serangan yang biasa terjadi. Apa saja sih serangan-serangan yang biasa digunakan dalam website itu?

 

1. Cross-Site Scripting (XSS)

Cross Site Scripting (XSS) adalah jenis yang cukup berbahaya dengan tujuan menyisipkan script tertentu kedalam website yang bertujuan untuk mencuri data.

Biasanya orang yang tidak bertanggung jawab akan mendapatkan akses melalui cookie, session dan situs yang sudah terinjeksi XSS biasanya akan menampilkan banyak iklan yang tidak diketahui oleh pemilik website atau terdapat kata-kata asing yang tidak dibaca.

 

2. Cross-Site Request Forgery (CSRF)

Cross-Site Request Forgery (CSRF) biasanya mengunakan injeksi script, link, gambar dengan memanfaatkan token autentikasi.

Metode serangan CSRF biasanya dipicu oleh user dengan berupa link, script atau gambar yang sudah dimanipulasi dengan suatu perintah didalamnya, dengan tujuan untuk melakukan request yang tidak diinginkan oleh korban, biasa istilah ini disebut one-click attack.

Perbedaan CSRF dan phising adalah CSRF melakukan request tertentu ke dalam situs yang telah disiapkan oleh orang yang tidak bertanggung jawab dengan berisi script jahat didalamnya, sedangkan Phising adalah sebuah url atau link samaran untuk menipu korban yang seakan-akan menyerupai situs resminya.

 

3. Session Hijacking

Session Hijacking adalah sejenis serangan yang digunakan untuk mengambil data berupa session ID dengan bertujuan untuk mendapatkan akses akun, misalnya login dll.

Dengan mendapatkan session ID ini, orang yang tidak bertanggung jawab akan dapat menvalidasi ketika melakukan login dengan mengunakan session id, dan biasanya akan mencari variable $_SESSION untuk mencari data tanpa sepengetahuan penguna.

 

4. SQL Injection

SQL injection merupakan serangan yang sering terjadi pada website yang berskrip PHP dikarena dengan hanya melakukan satu request query kedalam database akan mengakibatkan sesuatu yang fatal.

Cara kerjanya akan diam-diam melakukan query melalui form, jika developer tidak melakukan validasi karakter yang tidak diperbolehkan, biasanya hal ini akan terjadi dan ini akan menjadi sesuatu yang berbahaya untuk database kalian.

SQL injection bertujuan untuk mengambil data, seperti username dan password, pencurian informasi atau delete data.

Lalu apa langkah yang bisa kalian terapkan agar serangan tersebut tidak terjadi pada website kalian, sebaiknya hal ini diterapkan pada saat proses development agar bisa lebih mengukur dan mengetahui bagian mana saja yang rentan terhadap serangan ini.

Bagi developer yang baru saja memulai untuk membangun aplikasi dengan PHP ini, sebaiknya jangan meremehkan hal ini. Berikut adalah langkah dan tips keamanan atau security yang dapat diimplementasikan kedalam sistem PHP kalian, diantaranya:

 

5. Gunakan function htmlspecialchars

Untuk mencegah terjadinya serangan dengan teknik injection script ada baiknya kita menambahkan fungsi htmlspecialchars untuk memfilter karakter yang tidak dieksekusi oleh browser.

Dikarenakan jika tidak melakukan filterisasi pada validasi biasanya karakter apapun dapat terekskusi oleh browser dan ini sangat berbahaya.

Gunakan function ini sebelum mengeksekusi, contoh:

$username = htmlspecialchars($username);

Dengan mengunakan function htmlspecialchars, apapun karakter yang berkaitan dengan script biasanya akan diconvert seperti ini:

& (tanda “dan” atau ampersand) ? &
" (tanda petik dua atau double quote) ? "
' (tanda petik satu atau single quote) ? '
< (tanda kurang dari atau less than) ? &lt;
> (tanda lebih dari atau greater than) ? &gt;

Biasanya titik rawan untuk terjadinya hal ini didalam form kontak, form login, form login admin.

 

6. Simpan session pada IP atau timeout

Sebaiknya gunakan timeout disetiap request login yang dilakukan, session merupakan penanda kepada server dan akan hilang ketika browser ditutup.

Untuk mencegah sesson hijacking, kalian bisa simpan session id dengan IP khusus, dengan bertujuan untuk membatalkan setiap request yang mencurigakan.

 

7. Sembunyikan file dan folder yang penting

Framework seperti laravel atau codeigniter biasanya sudah memiliki struktur directory yang baik, namun permasalahanya tidak semua file tersebut bisa dihidden oleh browser.

Kebanyakan developer meletakan semua file website tersebut kedalam root folder, dengan kata lain orang yang tidak bertanggung jawab tersebut akan dapat dengan mudah untuk membobol data penting pada website kalian dan menyisipkan kode-kode aneh dan berbahaya kedalam situs kalian tanpa kalian sadari.

Solusinya pindahkan folder dengan file-file penting tersebut yang berada didalam folder root kedalam folder public server, biarkan file root berisi index.php dan folder yang berisi file-file assets seperti gambar, javascript, css. Hal ini bertujuan untuk menyembunyikan file-file penting website kalian dengan aman.

 

8. Gunakan SSL

Saat ini, semua browser seperti chrome, firefox, opera selalu menyarankan pemilik untuk mengunakan protocol https, karena https merupakan protocol yang aman dan terenkripsi disetiap lalu lintas request.

SSL memperkuat keamanan dari situs, dan akan memberikan kepercayaan kepada search engine bahwa situs memang benar-benar aman untuk digunakan.

 

9. Gunakan function addslashes

Fungsi dari PHP ini berfungsi untuk menambahkan karakter \ pada setiap tanda kutip dalam string sehingga dapat mencegah serangan dari SQL injection.

Biasanya form login merupakan titik rawan terhadap serangan ini, dan kalian bisa mengunakan fungsi addslashes untuk menambahkan karakter \

Contoh pengunaan dan output dari fungsi ini:

$string = addslashes('apa itu "PHP" gan?');
echo($string);

Akan menghasilkan output seperti ini:

apa itu \"PHP\" gan?

Teknik ini cukup banyak digunakan oleh developer untuk memvalidasi setiap request inputan dari form login misalnya.

 

10. Gunakan function mysql_real_escape_string

Perlu kalian ketahui, serangan SQL injection merupakan serangan yang populer yang dilakukan dengan memanfaatkan form-form didalam website yang tidak dilengkapi oleh function atau script pengamanan khusus.

Langkah yang bisa kita gunakan adalah menghindari untuk masuk ke database dengan mengunakan function mysql_real_escape_string

Contoh pengunaannya:

$username = mysql_real_escape_string($username);
$query = "SELECT * FROM user WHERE username = '$username'";

 

11. Pengamanan melalui htaccess

Kode dalam .htaccess digunakan untuk membatasi akses kedalam folder suatu website dan memanipulasi file PHP yang kalian pakai. Hal ini juga berlaku untuk mengatur struktur directory dalam URL agar terlindungi.

Misalnya untuk memanipulasi struktur url id portfolio berikut:

https://www.website.com/portfolio.php?id=2

kita bisa merubahnya menjadi 

https://www.website.com/portfolio/2

URL tersebut dapat dirubah didalam kode .htaccess dengan mengunakan perintah:

<IfModule mod_rewrite.c>
RewriteRule ^portfolio/([^/]*)/([^/]*)/?$    /portfolio.php?id=$2
</IfModule>

 

12. Berlangganan dengan server hosting yang terpercaya

Banyak dari pemilik situs yang mengunakan hosting apapun yang penting harga murah, tunggu dulu.. satu hal yang tidak disadari adalah apakah hosting tersebut sudah memiliki keamanan yang baik, capable dan professional?

Hal yang terlihat sepele tapi sangat berdampak pada aplikasi. Sebaiknya pilihlah penyedia hosting yang professional, memiliki reputasi yang baik dan capable dalam masalah security untuk penguna mereka.

 

Kesimpulan

Dengan mengamankan sistem, tentunya akan menghindari dari serangan-serangan yang tidak diinginkan seperti Cross Site Scripting (XSS), Cross Site Request Forgery (CSRF), SQL Injection, Session Hijacking yang membuat penguna merasa lebih aman ketika berjelajah didalam website kalian.

Share