Tutorial Mengamankan Website Atau Blog

image

Terkadang kita sering lupa atau bahkan
tidak memikirkan keamanan website yang
kita buat. Keamanan PHP web Saat kita
mulai membuat aplikasi berbasis web
dengan menggunakan PHP tentu kita akan
berfokus pada cara pembuatannya,
bagaimana mengimplementasikan logika
sehingga menghasilkan suatu karya sistem
yang berjalan sesuai dengan keinginan dan
kebutuhan kita.
Tapi ada kalanya kita perlu membalik pola
pikir tersebut dengan memandang sebagai
seorang user (pengguna aplikasi) yang
mungkin memiliki waktu lebih banyak
dalam penggunaan aplikasi tersebut. Dalam hal ini banyak hal yang mungkin tidak kita perhatikan dari aplikasi buatan kita tersebut oleh karena itu ada pepatah “Tidak ada sistem yang sempurna.” tetapi penulis akan memberikan sedikit informasi
keamanan dasar sehingga kita bisa sedikit
melangkah menuju kesempurnaan tersebut.
Beberapa hal yang perlu diperhatikan
dalam langkah percobaan para cracker
untuk memboikot akses website kita antara lain :

1. Melalui URL (method GET)

2. Melalui media input yang terdapat dalam form (method POST)

Seperti yang kita bahas sebelumnya bahwa
terdapat 2 cara umum pengiriman variable
dalam PHP yaitu GET dan POST sehingga
perlu penanganan khusus dalam
penerimaan serta pengiriman variable
tersebut.
Untuk method POST :
Method POST ini sering dugunakan untuk
menangkap variable dari media input yang
terdapat dalam FORM.
Nah, dengan bahan pertimbangan yang
diatas maka ada beberapa tips agar web
kita sedikit aman dari serangan cracker,
Apa ?? sedikit aman ?? tentu anda bertanya demikian, kenapa saya mengatakan demikian, karena seperti yang saya katakan tadi bahwa tidak ada sistem yang sempurna. Jadi yang saya berikan dibawah
ini akan sangat membantu web anda untuk
mendekati sistem yang sempurna.

1. Batasi jumlah karakter (maxlength)
Pembatasan jumlah karakter dalam media
input sangat penting sehingga tidak
dimungkinkan penulisan script seperti
javascript pada inputbox tersebut.
Contoh implementasi :

Titik rawan : Input Login (username dan
password), Input search

2. Lapisi dengan penahan kutip atau
addslashes()
Fungsi PHP ini akan membantu kita
menambahkan tanda kutip (‘) pada setiap
karakter garing (/) sehingga dapat mencegah timbulnya efek SQL injection .
Saya rasa teknik hacking ini cukup populer
diantara anda. Penambahan kutip akan
membuat garing menjadi bertipe string
sehingga tidak dianggap sebagai salah satu perintah query pada MySQL / SQL.
Contoh implementasi : addslashes($_POST[‘_username’])
Titik rawan : Form Login

3. Lapisi dengan penahan tag atau
htmlspecialchars()
Untuk mencegah terjadinya teknik hacking
xss atau javascript injection maka ada
baiknya kita menambahkan fungsi tersebut. Hal ini akan membuat tag html maupun javascript memiliki tipe data string sehingga tidak akan dieksekusi oleh browser. Apabila script dimungkinkan dalam media input sehingga masuk ke dalam database dan saat browser membuka halaman yang terkontaminasi tersebut maka browser akan melakukan eksekusi terhadap perintah tersebut yang biasanya dalam bentuk javascript.
Contoh implementasi : htmlspecialchars
($_POST[‘pesan’])
Titik rawan : Form Login, Form Kontak
Admin

4. Perhatikan nama media input Web
anda.
Sudah saatnya kita berusaha sedikit lebih
unik dalam menentukan nama pada media
input kita sehingga mempersulit beberapa
tools penjahat yang menggunakan library
(kamus kata) dalam penentuan nama
variable incarannya. Misalnya pada media
input login tambahkan garis bawah. Tentu
anda memiliki ide sendiri dalam mengimplementasikan hal ini.
Contoh implementasi : <input type="text" name="”_use
rname” />
Titik rawan : Input Login (username dan
password)
Untuk method GET : Method get merupakan penangkapan variable yang berasal dari URL.

1. Gunakan .htaccess
Sebenarnya ini adalah sebuah metode yang menjadikan website kita seakan memiliki struktur direktori yang luas, padahal itu adalah variable. Sehingga memecah konsentrasi dari pengunjung yang berniat isenk. Bila halaman tidak ditemukan maka kita dapat meredirectnya ke halaman 404 kesayangan kita.
Implementasi :



RewriteEngine On


RewriteCond %{REQUEST_FILENAME} !-f


RewriteCond %{REQUEST_FILENAME} !-d


RewriteRule ^(.*)$ index.php?page=$1 [L]

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mydomain.
com$ [NC] RewriteRule ^(.*) http://www.mydomain.com/$1 [L,R=301]

2. Hindari $_REQUEST()
Metode ini digunakan untuk menangkap
variable dalam bentuk POST dan GET. Ada
kalanya kita membutuhkan metode
penerimaan variable dengan menggunakan
fungsi ini, tetapi batasilah penggunaannya
karena tanpa disadari suatu saat anda akan mendapatkan masalah karena hal ini. Dan bila kita telah terlanjur menggunakannya pada seluruh aplikasi kita maka kita akan sulit untuk merubah (Bisa, dengan memilah mana yang tidak perlu dan benar-benar menggunakan.).

Tambahan :
1. Session dan Cookies timeout
Gunakan timeout pada session atau cookies terutama untuk pengenalan login. Session merupakan penanda dari sisi server dan akan hilang apabila browser ditutup, sedangkan cookies adalah pengenalan dari sisi browser dan bila tidak diset timeout maka status akan terus login (pada pengenalan login.), tentu saja anda tau kemungkinan-kemungkinan yang akan terjadi selanjutnya.

Selamat menerapkannya pada website atau blog kita masing-masing.

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s