David Kurniawan A Technical Content Writer at Niagahoster, specializing in Virtual Private Servers (VPS), WordPress, and Internet Marketing. David is eager to help people to improve their business on the internet.

7 Tips PHP Security yang Wajib Anda Simak!

4 min read

12+ Tips Lengkap Cara Meningkatkan Keamanan Website Anda [Terbaru]

PHP adalah salah satu bahasa pemrograman backend yang sangat populer di kalangan developer. Karena PHP merupakan bahasa pemrograman yang open source, memiliki struktur yang baik, dan mudah digunakan. 

Tetapi saat Anda memilih pemrograman PHP sebagai backend website, Anda perlu memperhatikan keamanan dari program PHP yang Anda buat. Tujuannya agar website yang Anda buat tidak mudah diretas oleh hacker apapun versi PHP yang digunakan.

Biasanya para hacker akan menyasar data pribadi pengunjung, menjual produk ilegal di website tanpa sepengetahuan Anda, mencuri uang dari transaksi yang Anda lakukan, hingga menampilkan iklan iklan yang akan membuat website Anda lemot.

Untungnya, ada beberapa solusi untuk meningkatkan keamanan program PHP Anda. Itulah yang akan kami bahas di panduan kali ini. Supaya memudahkan Anda, kami akan menjelaskan beberapa serangan pada PHP dan memberikan solusi agar terhindar dari serangan PHP.

3+ Contoh Serangan pada PHP

Berikut ini adalah penjelasan dari empat contoh serangan pada PHP. Dari keempat contoh ini, kami harap dapat membantu Anda, terutama PHP developer, memahami bagaimana serangan pada PHP terjadi. 

1. Cross-Site Scripting (XSS)

Cross site scripting adalah salah satu serangan eksternal paling berbahaya yang dilakukan dengan cara memasukkan kode atau skrip berbahaya ke dalam website. Skrip tersebut dapat mempengaruhi kinerja website dan sering digunakan untuk mencuri data. 

Biasanya para peretas meminta akses website Anda secara paksa. Tujuannya, untuk mendapatkan akses ke cookies, sessions, history, dan lain-lain. Dampak dari XSS tidak hanya dari sisi pemilik website, tapi juga dari pengunjung website. Pengunjung biasanya akan mendapatkan tampilan website yang penuh iklan atau bahasa asing yang tidak dapat dibaca.

2. Session Hijacking

Session hijacking adalah serangan yang sering digunakan para peretas untuk mengambil data berupa session ID Anda. Tujuannya untuk mendapatkan akses akun yang diinginkan peretas. Misalnya akun login website, database, dan data user.

Dengan menggunakan session ID, peretas dapat melakukan validasi session Anda. Caranya dengan mengirimkan request ke server. Lalu mencari array $_SESSION untuk mencari session akun/data tanpa sepengetahuan Anda. Cara ini biasanya dilakukan setelah melalui Cross Site Scripting (XSS).

3. Cross-Site Request Forgery (CSRF)

Dalam serangan Cross site request forgery (CSRF), peretas dapat melakukan tindakan yang tidak diinginkan pada situs website. Dengan menggunakan CSRF peretas akan mendapatkan akses penuh website.  sehingga peretas dapat memodifikasi data website atau memodifikasi function program.

Serangan ini akan memaksa pengguna untuk mengubah request, seperti mentransfer dana tanpa sadar atau bahkan menghapus seluruh data yang ada di database. Serangan CSRF hanya dapat terjadi ketika Anda mengklik sebuah link yang telah dikirim dan disamarkan oleh peretas. 

Berikut ini adalah request GET  yang telah disisipkan peretas pada kode website Anda untuk mengirimkan uang ke akun lain.

GET http://bank.com/transfer.do?acct=TIM&amount=100 HTTP/1.1

Nah, sekarang apabila Anda melakukan klik pada link di bawah ini maka Anda akan otomatis mengirimkan uang ke akun lain dengan jumlah yang tertera.

http://bank.com/transfer.do?acct=Dapit&amount=100000

Link tersebut biasanya dikirim melalui email dengan menyamarkan ke dalam bentuk file atau gambar yang memungkinkan Anda untuk melakukan action klik pada file tersebut.

4. Prevent SQL Injection Attacks

Injection SQL adalah serangan yang paling sering terjadi pada skrip PHP. Satu request query saja dapat membahayakan seluruh data website Ada. Dalam serangan ini, peretas biasanya akan coba mengubah data yang Anda kirimkan melalui query.

Misalkan Anda secara langsung memproses data pengguna dalam query SQL, dan tiba-tiba, peretas diam-diam menggunakan karakter yang berbeda untuk melakukan bypass akun Anda. Itu artinya, akun peretas akan mengambil alih akses dari akun Anda.

Sebagai contohnya, lihat query SQL di bawah ini.

$sql = "SELECT * FROM users WHERE username = '" . $username . "';

Query $username dapat berisi data yang diubah. Jadi dari query tersebut dapat merusak database termasuk menghapus seluruh database hanya dalam sekejap mata.

7 Tips PHP Security yang Wajib Anda ketahui

Nah, Anda sudah tahu berbagai macam jenis serangan pada keamanan PHP. Kini saatnya Anda mengetahui berbagai cara untuk meningkatkan security PHP.

Tips PHP security di bawah, kami tujukan bagi Anda yang baru saja memulai pengembangan website. Terutama bagi Anda yang masih belajar mengenai bahasa pemrograman PHP. Cara di bawah ini memang kelihatannya dasar, tapi jangan remehkan efeknya.

1. Gunakan htmlspecialchars

Untuk bisa melihat script yang mencurigakan dan menghindari Cross-Site Scripting (XSS), gunakan htmlspecialchars di kodingan PHP Anda. Ini akan membantu Anda mengubah karakter di PHP menjadi bentuk HTML. Misalnya saja:

  • & (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;

Anda juga bisa pakai ENT_QUOTES dalam kode website Anda. ENT_QUOTES akan mengubah karakter tanda petik tunggal dan ganda (“ dan ‘) ke dalam bentuk HTML. Dengan begitu, Anda bisa lebih mudah ketika mengecek script yang mencurigakan.

2. Simpan Session dengan IP 

Untuk mencegah session hijacking, caranya Anda harus selalu menyimpan session dengan alamat IP khusus yang sering Anda gunakan. Caranya, tambahkan kode ini ke dalam script Anda, misalnya ketika membuat halaman login dengan session.

$IP = getenv ( "REMOTE_ADDR" );

Cara ini dapat membantu Anda untuk membatalkan session setiap kali ada request yang mencurigakan dan tanpa sepengetahuan Anda. Kode di atas juga akan memberikan informasi bahwa seseorang mencoba untuk mengakses session Anda.

3. Gunakan PHP Data Objects (PDO)

Untuk menghindari SQL injection attacks, Anda harus menggunakan PHP Data Objects atau PDO. PDO adalah ekstensi tambahan yang membantu Anda mengakses database secara aman. Tidak peduli jenis database yang Anda gunakan.

Namun, PDO ini tidak bisa digunakan untuk mengedit SQL atau menambahkan fitur tertentu. Tapi justru karena itulah, Anda bisa menghindari serangan SQL injection.

4. Sembunyikan File dari Browser

Framework PHP yang memakai arsitektur MVC (Model View Controller), Laravel atau CodeIgniter misalnya, memiliki tampilan direktori file yang terstruktur. Tidak semua file tersebut akan diproses oleh browser. Akan tetapi, file tersebut masih bisa dilihat.

Di sinilah, masalahnya. Kebanyakan developer awam meletakan semua file website pada direktori root. Ini mempermudah peretas untuk membobol data penting website. Karena browser dapat melihat semua file tersebut, sehingga peretas akan mudah untuk memasukkan kode/skrip berbahaya ke dalam website Anda.

direktori php

Solusinya, pindahkan file dari folder root ke dalam folder public server. Tujuannya, agar web browser tidak mudah melihat file penting dari website.

5. Pengaturan Root Document

Root dokumen untuk aplikasi PHP di server apa pun harus diatur ke dalam direktori /var/www/html sehingga pengguna dapat mengakses situs web Anda melalui browser. Tetapi dalam beberapa kasus, saat Anda mengembangkan API dengan framework seperti Laravel dan CodeIgniter Anda perlu memperbarui webroot ke folder /public.

Tujuan untuk mengatur webroot ke var/www/html/public adalah untuk menyembunyikan file sensitif seperti .htaccess dan .env yang memuat environment variables, akses database, email, API pembayaran, dan lain-lain.

6. Selalu gunakan SSL

Semua web browser modern seperti Google Chrome, Firefox, Opera, dan lainnya, selalu merekomendasikan untuk menggunakan protokol HTTPS untuk website. Karena HTTPS menyediakan protokol akses yang aman dan terenkripsi untuk situs yang tidak dipercaya. 

Sertifikat ssl juga memperkuat website Anda terhadap serangan XSS dan mencegah peretas untuk menyisipkan kode ke dalam website Anda. Untuk mendapatkan sertifikat SSL Anda dapat mengikuti panduan pada artikel ssl gratis yang ada di blog kami.

7. Update PHP secara teratur

Anda harus memperbarui website Anda untuk menggunakan versi PHP yang terbaru.

Apabila Anda masih menggunakan PHP 5.6 maka Anda akan memiliki banyak masalah saat melakukan update PHP. Karena Anda juga perlu memperbarui kode website Anda dan mengubah beberapa logika function seperti password hashing dan lain-lain.

Jika Anda menggunakan PHPStorm maka Anda dapat menggunakan PHP 7 Compatibility Inspection, yang akan menunjukkan kepada Anda kode mana yang menyebabkan Error.

Sekarang Anda Siap Melindungi Keamanan PHP?

Bahasa pemrograman PHP selalu rentan terhadap serangan eksternal. Tapi apabila Anda menggunakan tips PHP security yang telah kami berikan di atas, Anda dapat dengan mudah mengamankan website Anda dari serangan hacker.

Selain tips PHP security ini, banyak teknik yang dapat membantu Anda mengamankan website dari serangan eksternal, seperti menggunakan layanan cloud server yang memiliki fitur keamanan proteksi DdOS, proteksi malware, gratis SSL dan lain-lain.

David Kurniawan A Technical Content Writer at Niagahoster, specializing in Virtual Private Servers (VPS), WordPress, and Internet Marketing. David is eager to help people to improve their business on the internet.

Leave a Reply

Your email address will not be published. Required fields are marked *