Board Index


 
IndeksPortalFAQPencarianAnggotaGroupPendaftaranLogin
.::Buat temen2 yang buat thread diharapkan hidden alamat link agar para member juga aktif dalam forum::.

Share | 
 

 Mengamankan web dari injection

Topik sebelumnya Topik selanjutnya Go down 
PengirimMessage
volmacht
Member
Member
avatar

Posts : 11
Join date : 05.01.10
Age : 29
Location : INDONESIA LINE.

PostSubyek: Mengamankan web dari injection   Mon Jan 18, 2010 1:45 pm

"Injection" disini maksud gw adalah, teknik injeksi script yang di
lakukan melalui address bar. SQL Injection, RFI, dan XSS. soalnya tw gw
cuma itu. hehe

wlo kagak jago,bukan master, jelek, tp biarin. gak ada batasan buat share. ahag ahag

Tidak ada system yang aman 100%. Tetapi kita bisa mengupayakan
semaximal mungkin system kita aman. Gak tau seberapa persen. Walo 1%
pun, sangat berharga untuk sebuah keamanan. Coding berikut, hanya seper
xxxxxx persen. But semoga berguna.

Beberapa baris program berikut, intinya buat memparsing, validasi, or
filter variable-variable yang di kirim melalui address bar
($_GET['namavar']) secara otomatis. seberapa banyak pun variable, akan
tetep di filter.
Jd variable yg mau di filter, tidak perlu di definisikan terlebih
dahulu, karena program udah di buat otomatis buat filter semua variable
yg di lewatkan dengan methode GET.

langsong yagh pak

Code:
/* global config
tambahkan karakter yg km anggap berbahaya disini
*/
$xssinjectionchars = array("%3Cscript%3E","%3C/script%3E");
$sqlinjectionchars = array("-","*","/","'","\\""," ","=","+","(",")","@","%20","%");

//batasi hanya variable ini yang akan di filter
$registeredrequests = array("page","cat","id");

/* function */
function securitycheck(){
    global $registeredrequests;
    $REQUESTS = $_SERVER['QUERY_STRING'];
    $REQUESTS = explode("&",$REQUESTS);   
    for($i=0; $i< count($REQUESTS); $i++){       
        $get = substr($REQUESTS[$i],0,(strpos($REQUESTS[$i],"=")));
        $val = substr($REQUESTS[$i],(strpos($REQUESTS[$i],"=")+1),strlen($REQUESTS[$i]));
        if(in_array($get,$registeredrequests)){       
            $val = antixssinjection($val);
            $val = antisqlinjection($val);                       
            $val = rficleaner($val);
            $_GET[$get]=$val;
        }
    }   
}

//filter sql
function antisqlinjection($cek){   
    global $sqlinjectionchars;
    for($i = 0; $i <= strlen($cek); $i++){
        if(!in_array(substr($cek,$i,1),$sqlinjectionchars)) { $filtered .= substr($cek,$i,1);}       
    }
    for($i = 0; $i < count($sqlinjectionchars); $i++){
        $filtered = str_replace($sqlinjectionchars[$i],"",$filtered);
    }
    return $filtered;
}

//filter rfi
function rficleaner($cek){
    $filtered = ((eregi("^(http:).+",$cek))?'index':$cek);
    return $filtered;
}

//filter xss
function antixssinjection($cek){
    global $xssinjectionchars;
    for($i = 0; $i < count($xssinjectionchars); $i++){
        $filtered = str_replace($xssinjectionchars[$i],"",$cek);
    }
    return $filtered;
}

penjelasan config.

$xssinjectionchars adalah karakter2 yang di anggap sebagai xss
injection. disini masih tak masukan dan .
$sqlinjectionchars adalah karakter2 yang di anggap sebagai sql injection. misalnya -, +, dll.

Karakter2 bisa di tambahkan sendiri sebanyak yg di ketahui.

$registeredrequests merupakan variable2 valid yang memang ada dan di
perlukan di website. variable yang tidak di daftarkan disini, akan
dilewatkan dalam pengecekan dan di hapus.

Penjelasan alurnya program.

contoh :

http://websiteku.com/?page=about&news_id=5


1. Ambil semua variable yang di kirim melalui methode get.

$REQUESTS = $_SERVER['QUERY_STRING'];

Menghasilkan => /?page=about&news_id=5


2. Variable2 tersebut masih berbentuk string. pisahkan berdasarkan tanda "&".

$REQUESTS = explode("&",$REQUESTS);

step ini menghasilkan $REQUESTS dalam bentuk array. masing2 array, berbentuk layaknya sebuah variable dikirim.

$REQUESTS[0] = page=about
$REQUESTS[1] = news_id=5

3. Mulai filter.

a. Hitung jumlah $REQUESTS. kemudian lakukan pengulangan untuk mengecek.

for($i=0; $i< count($REQUESTS); $i++){ ... filterisasi .... }

b. Pisahkan nilai masing2 $REQUESTS menjadi 2 bagian berdasarkan tanda "=". [nama var]=[value var]

$get = substr($REQUESTS[$i],0,(strpos($REQUESTS[$i],"=")));
$val = substr($REQUESTS[$i],(strpos($REQUESTS[$i],"=")+1),strlen($REQUESTS[$i]));

c. Dek apakah variable terdaftar ($registeredrequests)

Mungkin ada yg bertanya, mengapa harus mendaftarkan variable terlebih dahulu, bukankah variable di cek secara otomatis.
Iya, memang. tp hal ini penting, karena kalau dibiarkan, klo ada orang
tau codingnya, maka bisa jadi ddos bagi server hanya dengan membuat
variable yang sangat banyak.

if(in_array($get,$registeredrequests))

Jika variable terdaftar, maka lakukan pengecekan. jika tidak, maka hapus variable tersebut.

d. Do filter

Seip, lakkukan filterisasi terhadap xss-i,sqli,rfi pada value variable.
filter dilakukan dengan menghilangkan karakter2 yg di anggap berbahaya
(sesuai config). sehingga nilai yang di hasilkan benar2 bersih dari
karakter yg di anggap berbahaya.

$val = antixssinjection($val);
$val = antisqlinjection($val);
$val = rficleaner($val);

e. Rubah value variable yg dikirim dengan value variable yg lolos filter.

$_GET[$get]=$val;


Seip.... udah selese. Coding gw ini msh terlalu jelek. Karena kemampuan
gw emang segitu. Mgkn sobat migworld punya solusi lain untuk lebih
menyempurnakanya. Or mungkin klo di temukan bug, bisa di fix.
n, teknik penyempurnaanya + bug fix nya, kita bahas disini sekalian de sob. Very Happy

Semoga berguna buat kita semua.
oiya, ketinggalan.

cara pakainya, tinggal include tuh script. terserah mo di taruh campur
function2 km, km taruh page sendiri, km taruh di halaman km, terserah.
cara pakainya tetep sama :

letakan code berikut di halaman yg mo di cek. di atas sob, sebelum proses di mulai.


securitycheck();



Terakhir diubah oleh volmacht tanggal Sun Jan 24, 2010 4:44 pm, total 1 kali diubah
Kembali Ke Atas Go down
Lihat profil user http://www.indonesialine.ace.st
amuntai
Moderator
Moderator
avatar

Posts : 50
Join date : 28.12.09
Age : 30
Location : kalsel

PostSubyek: Re: Mengamankan web dari injection   Fri Jan 22, 2010 1:07 am

wah ebad master script

_________________
Kembali Ke Atas Go down
Lihat profil user http://mig33amc.tk
rizalblue
Moderator
Moderator
avatar

Posts : 78
Join date : 31.12.09
Age : 23
Location : satui

PostSubyek: Re: Mengamankan web dari injection   Fri Jan 22, 2010 2:05 am

kaget gk ngerti aq
Kembali Ke Atas Go down
Lihat profil user http://www.rizalblue.co.tv
fuck.u.
Helper
Helper
avatar

Posts : 64
Join date : 28.12.09

PostSubyek: Re: Mengamankan web dari injection   Fri Jan 22, 2010 4:12 am

pak web ku tolong inject ke dunk...

_________________
Kembali Ke Atas Go down
Lihat profil user
volmacht
Member
Member
avatar

Posts : 11
Join date : 05.01.10
Age : 29
Location : INDONESIA LINE.

PostSubyek: Re: Mengamankan web dari injection   Sun Jan 24, 2010 4:47 pm

fuck.u. wrote:
pak web ku tolong inject ke dunk...

dah dikasi tutor og masi nyuruh inject ne
Kembali Ke Atas Go down
Lihat profil user http://www.indonesialine.ace.st
Admin
Admin
Admin
avatar

Posts : 130
Join date : 26.12.09

PostSubyek: Re: Mengamankan web dari injection   Mon Jan 25, 2010 4:34 am

Quote :
dah dikasi tutor og masi nyuruh inject ne

we kan master c mas...

_________________
Danger please You Turning your Computer

Kembali Ke Atas Go down
Lihat profil user http://migworld.mygoo.org
rizalblue
Moderator
Moderator
avatar

Posts : 78
Join date : 31.12.09
Age : 23
Location : satui

PostSubyek: Re: Mengamankan web dari injection   Sat Mar 20, 2010 7:40 am

yahoo_witsend SQL ya...

_________________
add me as yoville crew in facebook: "rizalblue@gmail.com"

Kembali Ke Atas Go down
Lihat profil user http://www.rizalblue.co.tv
er.o
Newbie
Newbie
avatar

Posts : 6
Join date : 24.01.10
Age : 31
Location : Gawokville, Solo, Indonesia

PostSubyek: Re: Mengamankan web dari injection   Tue Mar 23, 2010 8:57 pm

gaga mudeng soal script gituan
yg aq tau cuma html doank
Kembali Ke Atas Go down
Lihat profil user http://errorisme.wen.ru/
Sponsored content




PostSubyek: Re: Mengamankan web dari injection   

Kembali Ke Atas Go down
 

Mengamankan web dari injection

Topik sebelumnya Topik selanjutnya Kembali Ke Atas 
Halaman 1 dari 1

Permissions in this forum:Anda tidak dapat menjawab topik
Board Index :: Other :: Programming-