Pencarian

Sabtu, 18 April 2009

Meminimalisasi Serangan Sql Injection

Setelah beberapa minggu ini belajar Sql Injection, maka kali ini saya mau buat Script sederhana untuk meminimalisasikan serangan tersebut.

Sebelumnya perlu diketahui,
Sql Injection adalah Serangan dengan cara memasukkan perintah ke Query Sql dengan cara memanipulasi data yang sebenarnya, cara memasukkannya bisa melalui URL atau input text. Bug ini memang sudah lama banget beredarnya kalo nggak salah sekitar tahun 2002 (klasik) namun kamu masih dapat menemukan banyak bug ini pada website-website di penjuru internet ini, terutama website pemerintah :D

Untuk mengetahui apakah website calon memiliki Vuln (bisa di injec) atau tidak, biasanya penyerang memasukkan tanda kutip satu (') pada url nya. misalnya terdapat alamat ini:
http://www.bedolzz.com/index.php?id=10'
atau bisa juga dengan (-)
http://www.bedolzz.com/index.php?id=-10
bila terdapat error maka ada kemungkinan website tersebut Vulner atau bisa di serang dengan teknik SQL Injection.
Untuk mengatasi hal diatas, maka kita bisa membuat Script diatas:

Untuk nilai variabel $id saya menggunakan digit angka, karena dengan angka akan memudahkan saya dalam proses pengecekkan, Scriptnya seperti ini:

<?php
error_reporting(0);
include "koneksi.php";
class filter{
function sqlInjection($id){
$id2 = mysql_real_escape_string($id);
if (!ctype_digit($id2))
{
echo "Maaf, Bug nya udah di patch";
exit;
}
else if ($id2 <= 0)
{
echo "Yah di patch lagi ";
exit;
}
else
{
return $id;
}
}
}
$oFilter = new filter();
$id = htmlentities($_GET['id']);
$cId = $oFilter->sqlInjection($id);
$q = mysql_query("select *from guestbook where id_guest='$cId' order by id_guest desc") or die (mysql_error());
if (mysql_num_rows($q) == 0)
{
echo "Data nya nggak ada";
exit;
}
$a=mysql_fetch_assoc($q);
echo "Nama : $a[username]<br>";
echo "Email : $a[email]<br>";
echo "Komentar : $a[comment]<br>";
echo "<br><hr>";
?>

Penjelasan :
error_reporting(0): berguna Untuk mematikkan pesan error pada saat ada kondisi error.
mysql_real_escape_string : berguna untuk manambahkan slash (\) jika terdapat tanda kutip.
ctype_digit : berguna untuk mengecek apakah input tersebut berupa angka atau bukan.
setelah itu saya buat kondisi dimana id nya nggak boleh kecil atau sama dengan 0
Selesai dah..

Sedangkan untuk menghindari SQL Injection di halaman login saya menggunakan Fungsi-fungsi seperti: Fungsi strip_tags, htmlentities, mysql_real_escape_string dan eregi untuk mencocokkan karakternya.
Setelah selesai di cek dengan fungsi tersebut baru data saya masukkan ke Query. o ya, jangan lupa pake encrypt md5() biar lebih aman.

SELECT * from tb_user where username='$username' and password=md5('$password')

Koq proses pengecekkannya banyak nih ???
Saya pernah membaca buku karangan S'to dari Jasakom mengenai Sql Injection
katanya " Jangan pernah percaya semua input yang berasal dari user"
dan seperti memang harus seperti itu :D

Seperti yang saya bilang di atas, Script yang saya buat tentunya belum banyak validasi dan masih rentan terhadap serangan makanya saya bilang meminimalisasi bukan menghindari, dan jangan lupa ya kasi tau jika ada cara yang lebih bagus lagi... :D

Keep Share...

Senin, 13 April 2009

Istilah Komputer, Internet dan Jaringan

  • Website/Situs : Halaman-halaman yang biasanya berisi informasi-informasi yang terdapat di suatu komputer yang terkoneksi internet, halaman-halaman ini memiliki keterkaitan satu sama lain.
  • Web Hosting : Web Hosting adalah salah satu bentuk layanan jasa penyewaan tempat di Internet yang memungkinkan perorangan ataupun organisasi menampilkan layanan jasa atau produknya di web / situs Internet seperti www.masterwebnet.com atau www.phpnet.us.
  • User : Nama lain dari orang-orang yang memakai atau menggunakan komputer.
  • Update : Suatu kegiatan memperbaharui baik database ataupun data lainnya.
  • Web Administrator : Orang yang bertugas atau bekerja sebagai administrator atau penguasa dari suatu website, web administrator biasanya bertugas memanagemant isi dari website agar selalu baru.
  • Script : Lembaran text yang berisi kode-kode tulisan yang terdapat dihalaman website. Kode ini biasanya tidak tampil ketika program di eksekusi namun berfungsi untuk pengaturan dari program itu sendiri seperti kode <b></b> dalam script HTML berfungsi untuk menghitamkan tulisan.
  • HTML atau Hyper Text Mark Languange : Bahasa pemograman internet yang dapat digunakan untuk membuat suatu website.
  • PHP Hypertext Preprocessing : Bahasa pemograman Web yang bersifat open source yang biasanya digunankan untuk melakukan pengolahan data, PHP ini bersifat gratis dan karena Open Source jadi dapat di kembangkan oleh siapapun.
  • Database : Program yang berfungsi untuk penyimpanan data, seperti MySql, Oracle Ms Acces dkk. PHP biasanya menggunakan Mysql sebagai pasangan hidupnya eh sebagai Database nya.
  • CMS / Content Managemant System : Sebuah system yang dibuat untuk mengatur isi dari suatu website, seperti joomla, mambo, phpbb dll, dengan ada nya teknologi CMS maka untuk mengubah isi suatu website kita tidak perlu lagi membongkar kode-kode yang rumit dari website tersebut namun cukup merubahnya dari halaman Back End nya saja, dan tentunya untuk masuk ke halaman back end ini harus didahului dengan Login.
  • Login : Didalam website login dapat di artikan Suatu kegiatan untuk masuk ke halaman lain yang di proteksi oleh Session atau Cookie. Biasanya user dimintai syarat-syarat dalam login seperti nama user dan password. Nama user serta password tersebut akan dicocokkan di database dan jika ada maka akan di bentuklah Session atau Cookie baik di Server maupun di Browser Client.
  • Logout : Kebalikan dari login, suatu kegiatan keluar dari halaman tertentu, logout ini berguna untuk menghancurkan Session atau Cookie yang terbentuk ketika login atau menghilangkan username dan password yang terdapat di browser Client maupun Server agar apabila ada orang lain yang menggunakan komputer anda tidak dapat masuk kehalaman yang telah anda kunjungi dengan login.
  • Username : Nama pengguna
  • Password : Kata kunci
  • Homepage : Di dalam website, homepage dapat juga di sebut sebagai halaman utama.
  • Upload : Kegiatan memindahkan data dari suatu komputer yang terkoneksi di internet ke komputer server yang menyediakan ruang penyimpanan.
  • Download : Kegiatan mengambil file dari internet.
  • Hacking : Suatu kegiatan yang bertujuan mengekplorasi sebuah system. Orang yang melakukannya disebut Hacker, banyak salah pengertian yang beredar saat ini antara Hacker dan Cracker.
  • Email : Surat elektronik yang terdapat di internet contohnya alamat email dprd kota jambi dprd_jambikota@yahoo.co.id . Anda dapat membuka kotak surat anda dengan memasukkan alamat email dan password melalui www.yahoomail.com , dan anda pun dapat mengirim pesan ke alamat email lainnya walaupun pemilik email tersebut tidak sedang menggunakan internet.
  • Yahoo Messenger/ YM : Sebuah program untuk melakukan kegiatan Chatting atau saling bertukar pesan teks.
  • ID YM : Nama identitas pengguna di Yahoo Messenger.
  • Web Browser : Program yang dibuat agar dapat mengakses suatu website seperti Mozilla Firefox, Internet Explorer, Opera, Chrome dll.
  • Web Server : Untuk istilah yang satu ini saya juga bingung karena ada dua pengertian Web Server Program atau Komputer Web Server, so saya merujuk ke wiki, Server web adalah sebuah perangkat lunak server yang berfungsi menerima permintaan HTTP atau HTTPS dari klien yang dikenal dengan browser web dan mengirimkan kembali hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML. Server web yang terkenal diantaranya adalah Apache dan Microsoft Internet Information Service (IIS). Apache merupakan server web antar-platform, sedangkan IIS hanya dapat beroperasi di sistem operasi Windows.
    Server web juga dapat berarti komputer yang berfungsi seperti definisi di atas Dari : http://id.wikipedia.org/wiki/Web_server
  • Search Engine : Mesin Pencari yang terdapat di internet, mesin pencari ini berbentuk website dan dapat memudahkan untuk pencarian artikel, file gambar, audio, video di website-website yang lain yang bertebaran di jagat internet contoh dari search engine yang tersohor antara lain www.google.co.id , www.yahoo.co.id, www.msn.com www.astalavista.uk dll
  • Exploit : Sebuah perangkat lunak yang menyerang kerapuhan keamanan (security vulnerability) yang spesifik namun tidak selalu bertujuan untuk melancarkan aksi yang tidak diinginkan. Banyak peneliti keamanan komputer menggunakan exploit untuk mendemonstrasikan bahwa suatu sistem memiliki kerapuhan.
  • Vulnerability : Celah-celah keamanan yang biasa nya di jadikan sebagai pintu masuk oleh seorang Hacker dan Cracker.
  • XAMPP : Paket Program yang didalam terdapat berberapa aplikasi yang dapat digunakan untuk keperluan bahasa pemrograman Web seperti Apache, PHP, MySql, perl, MercuryMail, PHPmyAdmin, FTP CGI-Bin dkk. Pada OS Linux di kenal dengan nama LAMPP. Dengan ada nya aplikasi ini maka kita tidak perlu lagi menginstall aplikasi yang diperlukan satu-satu dan tentu nya cara install seperti satu-satu akan jauh lebih sulit. beberapa aplikasi yang kegunaanya seperti XAMPP antara lain WampServer, AppServer, PHPtriad.
  • Notepad++/NPP : Program yang mirip dengan Notepad milik windows, namun karena ada ++ jadi jauh lebih powerfull. Dengan Notepad++ kita bisa membedakan antara Syntax program /string/ baris komentar dan masih banyak lagi keunggulan program ini. Biasa nya program ini di gunakan untuk memperlajari kode-kode dari suatu program.

Hmm.. Beberapa istilah di atas adalah menurut pemahaman saya yang masih baru belajar ditambah dengan baca-baca di http://id.wikipedia.org/wiki/Halaman_Utama dan di http://total.or.id/
Semoga bermanfaat :D

Waduuuuhh kuliahku..

No comment ah...

Jumat, 10 April 2009

DDoS Distributed Denial of Service

Katanya sih Serangan yang belum ada obatnya sampai sekarang, Distributed Denial of Service adalah Suatu Upaya untuk menghabiskan daya/resource Komputer Server sehingga komputer tersebut down dan tamat riwayatnya.

Serangan ini menggunakan zombie (komputer-komputer lain yang sudah dikendalikan oleh si penyerang), dengan cara mengirim paket data sebanyak mungkin dari sebanyak-banyaknya zombie yang ada, lalu Si Server yang di serang akan kesulitan menerima kiriman paket data tersebut sampai akhirnya terjatuh tanpa perlawanan.

Untuk yang mau coba di Jaringan LAN, bisa download tools untuk melakukan serangan DDoS tapi hati-hati penggunaannya, dan tentunya saya tidak bertanggung jawab atas apa yang akan terjadi, download.

dan untuk menyerang website tertentu dengan DDoS, diperlukan komputer zombie, semakin banyak zombie nya semakin mantaff pula serangannya.
Sowry saya belum bisa posting, tunggu aja selanjutnya...

Kamis, 09 April 2009

PEMILU 2009

Koq orang-orang pada berebut ingin jadi bagian dari Legislatif !!!

Ada apa dengan Legislatif ???
Meninggalkan Janji lalu mencuri.
Lalu sering kali aku melihat korupsi di TV
Ada apa lagi dengan Legislatif ???
di genangi Harta dan air mata rakyatnya.

ada anggota dewan ketahuan main perempuan
di diskotik sambil korupsi
kenapa tak di hajar saja
biar dia jera.
Cukupkah dia di penjara lalu berubah...???


koq malah jadi kayak puisi nih..

Kalo semua Partai atau Caleg pada kurang bener, lalu saya sendiri sebagai pemilih bener nggak yah ???
Kalo pemilih seperti saya saja udah nggak bener, lalu siapa yang bener ???
Kalo saya nggak percaya dengan semua Partai atau Caleg yang ada lalu siapa yang akan mewakili suara saya di gedung mewah sana ???

Gosip nya sih, Upah kerja (gaji) sebagai Legislatif nggak terlalu besar, cuma tunjangannya aja yang luaaaaaaaaaar biasa, mungkin sebentar lagi ada Tunjangan untuk tidur (Tunjangan TIDUR) saat Legislatif sedang Sidang buat keripik udang eh maaf buat Undang-undang.

Coba deh mikir dikit aja, " Kalo memang ingin mewakili suara rakyat, mengapa harus repot-repot pake bagi sembako, uang, pulsa di tambah teriakan dengan suara yang nggak enak banget di dengar baik di TV, Radio atau dimana saja, PILIHLAH SAYA.... "
trus kalo gitu niat nya apa ya ?

Katanya Sidang membahas Undang-undang tapi kok sedikit yang datang ???
Apa yang lain nya lagi sibuk jalan-jalan ??? Studi banding atau menghabiskan anggaran ???

tapi nggak semuanya yang tukang Cupang (maaf bukan porno tapi Curi Pakai Uang) rakyat, buat yang nggak ngerasa Semoga selalu di beri kekuatan, dan keberanian untuk tetap bersuara diantara riuhnya dosa yang lalu lalang. Buat yang masih bener Semoga diberi ganjaran sesuai dengan apa yang diperjuangkan.

lalu masihkah ada yang bisa di percaya di Indonesia Raya eh maaf terlalu luas, di Kota saya yang saya Cintai ini ???

ahhhhh jadi ngawur nih, enakan belajar lagi...

Selasa, 07 April 2009

Membuat Konversi Angka menjadi huruf dengan PHP

Membuat Konversi Angka dengan PHP
huhhh.. belajar PHP lagi neh, kali ini saya mencoba membuat konversi angka menjadi huruf, misalnya seperti ini:

1500000
akan di ubah menjadi
"Satu Juta lima ratus ribu Rupiah"

Biasa nya di gunakan untuk membuat kwitansi pembayaran.
Saya membuat sebuah file dengan nama classConversi.php (belajar OOP terus hee..)
di file tersebut terdapat classConversi dan fungsi-fungsi.Untuk menggunakannya cukup seperti ini:

<?php
//panggil file class nya
require "classConversi.php";
// membuat objek
$oConver = new classConversi();

$data = $_POST['data'];
//menggunakan fungsi conversiAngka

$cAngka = $oConver->conversiAngka($data);
?>

adapun fungsi-fungsi PHP yang saya gunakan pada file classConversi.php antara lain :
number_format() = berguna untuk memberikan titik pada suatu string misalnya seperti ini:

$data = 1500000
$titik = number_format($data, 0,'','.');
akan menghasilkan 1.500.000

explode() = berguna untuk memecah suatu string berdasarkan parameternya,misalnya saya ingin memecahkan 1.500.000 berdasarkan titik yang terdapat pada variabel titik di atas,

$exTitik = explode(".",$titik);

fungsi explode ini akan menghasilkan nilai array, jadi jika ingin menggunakannya atau menampilkannya:

echo "$exTitik[0]";
echo "
$exTitik[1]";
akan menampilkan :
1
500

count() = berguna untuk menghitung jumlah array.
$jTitik = count($exTitik);
akan menghasilkan
3
karena explode membagi 1.500.000 menjadi 3 bagian yaitu 1 dan 500 dan 000.

untuk fungsi substr dan strlen silahkan lihat artikel saya disini.

fungsi ucfirst untuk memberikan huruf besar (kapital) pada awal string atau karakternya
dan strtolower menjadikan semua string hufuf kecil.

silahkan download file nya disini
tapi, seperti nya masih banyak yang kurang pada class serta fungsi yang saya buat tersebut, maklum masih pemula.

Nb: Script Konversi angka yang saya buat diatas hanya untuk angka 1 milyard ke bawah 1.000.000.000, kalo dipakai untuk lebih dari itu jadi nggak benar konversi nya, lagi mau nyoba buat yang lebih rapi lagi nih
selamat mencoba...