Tema: Chmod 777
Pogledajte određenu poruku
Staro 07. 03. 2011.   #12
ljtruba
old school
Expert
 
Datum učlanjenja: 14.10.2006
Poruke: 460
Hvala: 39
17 "Hvala" u 14 poruka
ljtruba is on a distinguished road
Default

Citat:
Originalno napisao webarto Pogledajte poruku
Kakav update, niti se SQL mjenjao niti PHP (ili šta već) koristiš...

PHP kôd:
function replace($string$type "an"$custom ""){
    switch(
$type){
        case 
"n"$regex "0-9"; break;
        case 
"a"$regex "a-zA-Z"; break;
        case 
"an"$regex "a-zA-Z0-9"; break;
    }
    return 
preg_replace("#([^$regex$custom]+)#is"""$string);
}

echo 
replace("x' OR 'x' = 'x"); // xORxx
echo replace("x' OR 'x' = 'x""a""\s"); // x OR x  x 
Za tekstualne inpute...

PHP kôd:
function escape($mixed){
    if(
is_array($mixed)){
        foreach(
$mixed as $key => $value){
            if(
is_array($value)){
                
$value escape($value);
            }else{
                
$value mysql_real_escape_string(htmlspecialchars($valueENT_QUOTES"UTF-8"));
            }
        }
    }else{
        
$mixed =  mysql_real_escape_string(htmlspecialchars($mixedENT_QUOTES"UTF-8"));
    }
return 
$mixed;

E sad ako nije tvoja aplikacija možeš da postaviš na DB klasu da pri upisu odradi nešto od ovoga, ako toga nema, možeš da se slikaš

Edit:

Kako se ispiti polažu :P http://webarto.com/39/sql-injection-example

Znači nema tu šta, blokiraš par ovih specijalnih znakova i ćao.
Samo nisam skapirao, da li treba obe funkcije da uradim ili samo jednu od ove dve?

Kako se postavlja klasa na DB pri upisu???
ljtruba je offline   Odgovorite uz citat