Recent Comments

Space For Ads

Space For Ads

Kamis, 17 Februari 2011

Anti SQL i

Bagi para web admin yang akan mengamankan web nya dari sebuah serangan sql injection kalii ini saya akan memberikan patch sql injection..
berikut script yang harus di tambal supayaa aman dari serangan sql i, langsung sajaaa..

<?php

# definisikan SQL Injection Chars pada sebuah variable array
$SQLInjectionChars = array("'","-","\"","\\","+","@","/","*","(",")","=","%","$");
$xssinjectionchars = array("%3Cscript%3E","%3C/script%3E","<",">","()");

# ambil semua request atau input yang di kirim
$REQUEST = $_GET;

echo "Sebelum filter:<br>";
print_r($_GET);
echo "<br><br><br><br>";

# cek keberadaan karakter sql injection
foreach($REQUEST as $varname => $value){
    #cek karakter demi karakter
    for($i = 0; $i <= strlen($value); $i++){
        $karakter = substr($value,$i,1);
        /*
            value = 10'
            1
            0
            '
        */
        if(!in_array($karakter,$SQLInjectionChars)) { #jika karakter tidak berada pada array $SQLInjectionChars
            # maka tambahkan karakter pada $filtered
            $filtered .= $karakter;
        }
    }
    #cek karakter sqli pada $filtered
    for($i = 0; $i < count($SQLInjectionChars); $i++){
        $filtered = str_replace($SQLInjectionChars[$i],"",$filtered);
    }
   
    #cek xss
    for($i = 0; $i < count($xssinjectionchars); $i++){
        $filtered = strip_tags($filtered);
        $filtered = str_replace($xssinjectionchars[$i],"",$filtered);       
    }
    #rfi
   
   
    #buat variable baru (replace) dengan nama yang sama tetapi value baru
    $_GET[$varname] = addslashes($filtered);
    /*
        $_GET[id] = 10'
        $_GET[id] = 10
   
    */
    #input aman   
   
   
   
}
echo "Sebelum filter<br>";
print_r($_GET);

itu tadi adalah sedikit script untuk menambal website yang mungkin masih bocor..
thx to mas Vrodin..

0 komentar:

Posting Komentar