tips keamanan aplikasi web php & mysql -...

5
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org Tips Keamanan Aplikasi Web PHP & MySQL Reza Pahlava [email protected] :: http://rezapahlava.com Abstrak PHP bukanlah ilmu dan teknologi baru bagi kalangan developer web. Jutaan website di dunia maya telah disokong oleh bahasa pemrograman ini. Saking banyaknya website yang menggunakan PHP untuk engine dan backend sistem, makin banyak pula penyelinap (hacker) yang mencoba membobol sistem PHP terutama yang menggunakan database MySQL. Kunci: php, MySQL, hacker Pendahuluan Dalam kasus, cukup banyak website yang berbasis PHP MySQL dibobol oleh hacker. Namun, hal ini tidak bisa dijadikan patokan bahwa PHP adalah sistem yang rentan diserang hacker. PHP tetaplah memiliki security yang hebat dan powerfull jika developer bisa memaksimalkannya. Bagaimana caranya ?

Upload: truonglien

Post on 21-Apr-2019

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Tips Keamanan Aplikasi Web PHP & MySQL - ilmuti.orgilmuti.org/.../Reza_Pahlava-Tips_Keamanan_Aplikasi_Web_PHP__MySQL.pdf · database MySQL. Kunci: php, MySQL, hacker Pendahuluan Dalam

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

Tips Keamanan Aplikasi Web PHP & MySQL

Reza Pahlava

[email protected] :: http://rezapahlava.com

Abstrak

PHP bukanlah ilmu dan teknologi baru bagi kalangan developer web. Jutaan website di

dunia maya telah disokong oleh bahasa pemrograman ini. Saking banyaknya website

yang menggunakan PHP untuk engine dan backend sistem, makin banyak pula

penyelinap (hacker) yang mencoba membobol sistem PHP terutama yang menggunakan

database MySQL.

Kunci: php, MySQL, hacker

Pendahuluan

Dalam kasus, cukup banyak website yang berbasis PHP MySQL dibobol oleh hacker.

Namun, hal ini tidak bisa dijadikan patokan bahwa PHP adalah sistem yang rentan

diserang hacker. PHP tetaplah memiliki security yang hebat dan powerfull jika

developer bisa memaksimalkannya. Bagaimana caranya ?

Page 2: Tips Keamanan Aplikasi Web PHP & MySQL - ilmuti.orgilmuti.org/.../Reza_Pahlava-Tips_Keamanan_Aplikasi_Web_PHP__MySQL.pdf · database MySQL. Kunci: php, MySQL, hacker Pendahuluan Dalam

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

Pembahasan

Server Hosting

Penulis tidak akan membahas mengenai spesifikasi server PHP yang menyokong untuk

keamanan. Tapi yang paling penting dari server ini adalah keamanan yang digunakan

oleh penyedia hosting kita (apabila menggunakan hosting). Maka dari itu, coba carilah

hosting yang profesional ataupun capable dalam menghadapi masalah security untuk

klien mereka.

Sedikit saran, akan lebih baik apabila kita berada di wilayah Indonesia maka

gunakanlah server yang berada di Indonesia. Hindari menggunakan server luar negeri

(US).

SQL Injection

Serangan yang paling sering disukai oleh hacker dan juga peretas database adalah SQL

Injection. Biasanya terjadi pada web berbasis PHP dan MySQL. Metode SQL Injection

yang dipakai oleh hacker biasanya memanfaatkan form-form di dalam website yang

tidak dilengkapi dengan script pengamanan khusus.

Langkah-langkah yang setidaknya bisa kita pakai untuk menghindari pembobolan

database lewat form adalah menggunakan fungsi mysql_real_escape_string() untuk

menghindari string-string tertentu yang dipakai hacker saat membobol query database

sistem. Berikut adalah contoh penggunaan fungsi mysql_real_escape_string() :

$username = mysql_real_escape_string($_POST['username']);

$password = mysql_real_escape_string($_POST['pass']);

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

$hasil = mysql_query($query);

Page 3: Tips Keamanan Aplikasi Web PHP & MySQL - ilmuti.orgilmuti.org/.../Reza_Pahlava-Tips_Keamanan_Aplikasi_Web_PHP__MySQL.pdf · database MySQL. Kunci: php, MySQL, hacker Pendahuluan Dalam

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

Pengamanan .htacsess

htaccess adalah sebuah file konfigurasi yang ditaruh pada direktori root sistem aplikasi

web. Htaccess dapat dipakai untuk konfigurasi khusus aplikasi web kita, misalkan untuk

redirect ke halaman tertentu, membatasi akses halaman, dan lain sebagainya. Sebagai

fitur pengamanan, .htaccess dapat kita manfaatkan untuk merestrict (membatasi)

pengaksesan folder-folder di dalam sistem web kita. Contohnya :

Order deny,allow

deny from all

Kode .htaccess diatas dipakai untuk membatasi akses ke dalam suatu folder di dalam

web. Untuk memanfaatkannya, taruhlah file bernama .htaccess yang berisi kode diatas

ki dalam folder web yang ingin kita batasi.

Selain menggunakan metode diatas, kita bisa juga menggunakan .htaccess untuk

melakukan manipulasi file PHP yang kita pakai. Misalkan kita memiliki website berita,

dan untuk menampilkan berita tersebut digunakan file

“http://mywebsite.com/news.php?id=(id berita)“. Untuk memanipulasi menjadi

“http://mywebsite.com/news/berita-id” kita bisa menggunakan perintah ini melalui

.htaccess pada root folder utama website :

<IfModule mod_rewrite.c>

RewriteRule ^news/([^/]*)/([^/]*)/?$ /news.php?id=$2

</IfModule>

Page 4: Tips Keamanan Aplikasi Web PHP & MySQL - ilmuti.orgilmuti.org/.../Reza_Pahlava-Tips_Keamanan_Aplikasi_Web_PHP__MySQL.pdf · database MySQL. Kunci: php, MySQL, hacker Pendahuluan Dalam

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

Penggunaan Fungsi MD5

Untuk masalah pengamanan login, developer biasa menggunakan sistem login yang

telah diberi fungsi MD5 pada script action login. Meskipun menggunakan MD5,

terkadang website masih bisa dibobol karena hacker juga bisa menggunakan sistem

brute force canggih. Berikut adalah contoh penggunaan MD5 :

$password = md5($password);

if ($password == $data['password'])

{

echo "sukses";

}

else

{

echo "<h1>Login gagal</h1>";

}

Untuk memaksimalkan MD5, sangat disarankan untuk menggunakan kombinasi

password yang berisi karakter string sulit (alay). Misalkan 1n1p4ssw0rdgwe

(inipasswordgue).

Page 5: Tips Keamanan Aplikasi Web PHP & MySQL - ilmuti.orgilmuti.org/.../Reza_Pahlava-Tips_Keamanan_Aplikasi_Web_PHP__MySQL.pdf · database MySQL. Kunci: php, MySQL, hacker Pendahuluan Dalam

Lisensi Dokumen:

Copyright © 2008-2014 ilmuti.org

Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial

(nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap

dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org

Penutup

Pembangunan sebuah sistem berbasis web PHP akan sia-sia tanpa diimbangi dengan

keamanan yang memadai sekalipun sistem tersebut compleks, lengkap dengan feature

dan menarik misalnya, ketika mendapat berbagai serangan (attack) maka fatalah

akibatnya. Oleh sebab itu, kemanan mutlak diperlukan dalam suatu sistem berbasis web

PHP baik untuk pertahan terhadap sistem itu sendiri maupun database MySQL-nya,

sehingga sistem yang Anda kembangkan menjadi tangguh dan memiliki siklus hidup

yang lebih lama.

Referensi

http://mkhuda.com/web/tips-keamanan-aplikasi-web-php-mysql/

Biografi

Reza Pahlava lahir pada tanggal 15 Juli 1990 di Tangerang, sedang

melanjutkan kuliah di STMIK Raharja Tangerang pada jurusan

Teknik Informatika konsentrasi Software Engineering. Saat ini

bekerja sebagai IT Infrastructure di PT IMS Logistics. Hobi

membaca dan bercita-cita menjadi “ITPreneur” di usia muda.

Web : blog.rezapahlava.com

Email : [email protected]