Ragam cara melindungi web

09 February 2011

Keamanan web merupakan sebuah hal yang paling penting ketika kita ingin membangun sebuah web.
Ada banyak cara yang dapat digunakan untuk melindungi web kita. Dalam tutorial ini saya akan mencoba sedikit berbagi bagaimana cara melindungi web kita.

1. Pengecekan terhadap url
Biasanya masih banyak programer yang menerapkan penggunaan url seperti berikut ini :

http://www.apaajadeh.com/index.php?page=news&id=1
bentuk url seperti itu jika tidak diantisipasi dalam penggunaannya maka akan memungkinkan terjadinya SQL Injection.
Biasanya dalam melakukan SQL Injection hacker akan melakukan pengecekan terlebih dahulu dengan menambahkan tanda - atau ' pada url.
Contoh :
http://www.apaajadeh.com/index.php?page=news&id=-1
atau
http://www.apaajadeh.com/index.php?page=news&id=1'


Untuk mengatasinya ada baiknya kita melakukan pengecekan url terlebih dahulu sebelum menggunakan query sql untuk mengakses database.
Berikut contohnya :
if(substr($_GET[id],0,1) == "-" OR substr($_GET[id],-1,1) == "'")
{
echo "Anda tidak boleh menggunakan tanda - atau ' pada url";
}
else
{
//kode untuk menampilkan data
}
Pada kode tersebut diatas akan melakukan pengecekan terhadap id pada url.
substr($_GET[id],0,1) == "-" perintah ini akan mengecek apakah didepan id terdapat tanda -.
sedangkan  substr($_GET[id],-1,1) == "'" akan mengecek apakah dibelakang id terdapat tanda '.



2. Hindari pengunjung dapat mengakses folder secara langung
Terkadang kita lalai dalam memproteksi folder file web kita. Sehingga memungkinkan pengunjung dapat mengakses folder file web kita. Ini sama sekali tidak dapat dibiarkan karena dengan pengunjung dapat mengakses folder file web kita secara langsung dapat membahayakan web milik kita. Untuk mengatasi hal ini buatlah sebuah file dengan nama .htaccess pada root folder web.
Pada file tersebut tambahkanlah kode berikut :
Options All -Indexes
3. Gunakanlah permalink
Selain dapat mencegah SQL Injection penggunaan permalink juga biasanya digunakan untuk SEO.
Pembahasan mengenai cara membuat permalink akan saya bahas pada postingan tersendiri.

4. Gunakanlah captcha untuk menghalau spam
Terkadang bila web kita menyediakan fasilitas untuk memberi komentar terdahap sebuah posting akan dijumpai komentar-komentar yang berupa spam. Untuk menghalau hal ini tambahkanlah captcha pada form komentar anda. Untuk membuatnya bisa melihat tutorial saya mengenai cara membuat captcha.

5. Berikan nama unik untuk folder Admin
Memberikan nama yang mudah ditebak pada folder Admin akan memudahkan seorang hacker untuk mendapatkan nama folder Admin anda. Folder dengan nama admin, Admin, administrator, adminweb merupakan contoh-contoh nama folder yang sangat mudah ditebak. Usahakanlah menggunakan nama yang unik yang menggunakan Alphanumerik sehingga akan mempersempit jalan masuknya hacker. Contohnya adalah SuP3rM13, B4k50 atau nama-nama lain sesuai dengan keinginan anda yang terpenting adalah tidak mudah ditebak.


6. Antisipasi terhadap XSS  Attack
XSS (Cross Side Scripting) adalah suatu cara memasukan tag/skrip HTML kedalam suatu website dengan tujuan mengacaukan website. Skrip  XSS yang bisa digunakan biasanya menggunakan bahasa HTML, dan Javascript.
Adapun untuk menanggulangi serangan XSS ini dengan membuat filter untuk mengabaikan setiap tag skrip HTML dan Javascript yang diinput oleh pengunjung.
Fungsi-fungsi  dari php yang dapat digunakan untuk menangkal serangan XSS adalah :
- stripslashes -> untuk menghilangkan tanda slash pada setiap quote
- strip_tags -> untuk mengabaikan tag, baik HTML maupun tag PHP
- htmlspecialchars -> untuk mengabaikan tag HTML dan Javascript atau kode-kode khusus
- ENT_QOUTES -> biasanya digunakan bersamaan dengan htmlspecialchars yang merupakan kode untuk mengkonversi tanda petik ganda/tunggal secara bersamaan.
Contoh penggunaan :
function anti_xss($d)
{
$f = stripslashes(strip_tags(htmlspecialchars($d,ENT_QOUTES)));
return $f;
}

$nama = anti_xss($_POST[txtnama]);
$isi = anti_xss($_POST[txtisi]);
7. Proteksi halaman login
Halaman login juga menjadi salah satu bagian dari web yang sering mendapat serangan dari hacker.
Aktifitas SQL Injection juga banyak terjadi disini.
Usahakan gunakanlah fungsi dari php yang bernama mysql_real_escape_string pada file yang digunakan untuk aksi dari form login anda.
Contoh saya mempunyai 2 file, file form loginnya adalah frmlogin.php dan file aksinya adalah cek_login.php.
Pada file cek_login.php terapkanlah script berikut :
function anti_sql_injection($data)
{
$filter = mysql_real_escape_string($data);
return $filter;
}
 
$username = anti_sql_injection($_POST[txtusername]);
$pass = anti_sql_ijection(md5($_POST[txtpass]));

if(!ctype_alnum($username) OR !ctype_alnum($pass))
{
echo "Ga bisa di injeksi";
}
else
{
echo "Login berhasil";
}
Ok semoga tutorial ini berguna..
Kalo ada kesalah harap maklum saya hanyalah seorang newbie m(_ _)m
CMIIW... Ragam cara melindungi webSocialTwist Tell-a-Friend

0 comments:

Post a Comment

Artikel Lain

 
 
 

Go To Link

  »  A1VBCode
  »  Bina Sarana Informatika
  »  Blogger
  »  Deconstruction Code
  »  Diskusiweb
  »  dremi.info
  »  Echo
  »  Facebook
  »  Gary Abraham
  »  Ilmu Website
  »  JQuery
  »  Mahesajenar Widget
  »  STMIK Nusa Mandiri
  »  OOM Blog
  »  Planet Source Code
  »  Rahma Blog
  »  Terren Jr
  »  VB-Bego
  »  Herry Blog

Advertisement