[ dozetfkvsv @ 05.05.2013. 16:27 ] @
juce sam ustanovio da je vise od 100.000 artikala ubacno u korpu za kupovinu. na mom sajtu koji mi sluzi kao foto arhiva i nema korisnike.
obrisao sam upise i video da se svake sekunde povecava njihov broj za nekoliko upisa. sve adrese su 66.249.64.0 - 66.249.95.255 kao i gomila adresa iy kine. ovo mi deo fajla koji se odnosi na korpu. primetite li gresku u kodu?

Code:
//The function adds an item to the shopping cart
function shopping_cart_add($params)
{
    global $_SESSION;
    global $global_settings;
    global $db;
    global $rs;
    global $ds;
    
    $cart_id=shopping_cart_id();
    
    //Remove old carts
    $sql="select id from carts where id<>".$cart_id." and data<".(mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"))-2*3600);
    $rs->open($sql);
    while(!$rs->eof)
    {
        $sql="select id_parent from carts_content where id_parent=".$rs->row["id"];
        $ds->open($sql);
        if($ds->eof)
        {
            $sql="delete from carts where id=".$rs->row["id"];
            $db->execute($sql);
        }
        
        $rs->movenext();
    }

    if($cart_id!=0)
    {
        //Files
        if($params["item_id"]!=0)
        {
            $sql="select id_parent from carts_content where id_parent=".$cart_id." and item_id=".$params["item_id"];
            $rs->open($sql);
            if($rs->eof)
            {
                $sql="insert into carts_content (id_parent,item_id,prints_id,publication_id,quantity,option1_id,option1_value,option2_id,option2_value,option3_id,option3_value) values (".$cart_id.",".$params["item_id"].",".$params["prints_id"].",".$params["publication_id"].",".$params["quantity"].",".$params["option1_id"].",'".$params["option1_value"]."',".$params["option2_id"].",'".$params["option2_value"]."',".$params["option3_id"].",'".$params["option3_value"]."')";
                $db->execute($sql);
            }
        }
        
        //Prints
        if($params["prints_id"]!=0)
        {
            $sql="insert into carts_content (id_parent,item_id,prints_id,publication_id,quantity,option1_id,option1_value,option2_id,option2_value,option3_id,option3_value) values (".$cart_id.",".$params["item_id"].",".$params["prints_id"].",".$params["publication_id"].",".$params["quantity"].",".$params["option1_id"].",'".$params["option1_value"]."',".$params["option2_id"].",'".$params["option2_value"]."',".$params["option3_id"].",'".$params["option3_value"]."')";
            $db->execute($sql);
        }    
    }
    
    return $cart_id;
}
//End. The function adds an item to the shopping cart
[ Radovan__III @ 05.05.2013. 17:49 ] @
Na osnovu ovog koda koji je prikazan ne mozes spreciti nista, problem je u pozivu ovog koda. Drugi jos veci problem odnosi se na nacin na koji se upiti kreiraju ovaj nacin koji se ovde koristi gde direktno sastavljas string upita je najgore resenje koje se lako moze iskoristiti za hakovanje cele baze kroz obican sql injection.

Direktno tebe "hakuju" na nacin da su uzeli link za add item i njmu direktno salju post zahteve sa id-jem item-a koji zele da kupe. Takav skript moze da se napise za 5 minuta.

Prvi nacin resavanja problema : problem se resava unapred, tj np ne dozvoliti da se ubacuje u korpu ako korisnik nije registrovan, a ako se problemi nastave uvesti jos zastite na ragistraciji korisnika.

Drugi nacin je da kazes bas me briga, napravis jedan cron koji ce da ti brise te kartove koji nisu iskorisceni posle 2 dana npr.

Treci nacin, odradis sve preko sesija i ne puneti ti bazu ako je to direktno problem .
[ dozetfkvsv @ 05.05.2013. 21:08 ] @
hvala radovane na iscrpnom odgovoru.


Rus koji mi je pravio CMS me ubedjuje da je do hostera a ne skriptera kao oni to njihovim recnikom zovu. meni je kao laiku jasno da nesto ne stima u skripti i da nemogu provajteri garantovati za lose napisane skripte.

Mnogo je lik nadmen dodje mi da odem u SPB da mu lupim klepku :) a ja ne znam strucno da ga ubedim da je pogresio.

mozda da mi pomognete da dojem do nekog linka za upis u cart, vecina upisa ide sa sesijom i ip adresom bez artikla ali vidim da u nekim su uspeli i artikal da upisu.

sajt je vfa-foto.com


sajt mi nije komercijalan jer sam zaposlen u vecernjim novostima pa ne smem da prodajem fotke da ne dobijem otkaz, a ovo sam resio da dignem svoju foto arhivu na net da je imam dostupnu za nedaj boze. sad mi malo frka da dignem 100.000 fotki pa da "kinezi" upropaste godine truda

ako treba fotografskih saveta tu sam, al sam u webu ostao na html-u
[ Mystery @ 06.05.2013. 01:34 ] @
Dok je dodjes do resenja mogao bi da banujes privremeno ip adrese 66.249.*.*, posto je to veliki sigurnosni propust koji napuni bazu veoma brzo.
[ Nemanja Avramović @ 06.05.2013. 08:22 ] @
Ako ne koristiš tu korpu za kupovinu - zašto je uopšte tu? Traži od svog programera da isključi taj modul.