Trava človeku polepša dan

Trava človeku polepša dan

Res je. Po tem, ko zgubljaš čas z neko bebavo napako ((pozorni bralec bo takoj opazil bistveno razliko med $fileKey in $file_key)) in že rahlo slabe volje obupaš nad vsem skupaj…

[PHP]
function geSomeId($fileKey)
{
$query = “SELECT image_id FROM p_image ” .
“WHERE file_key = ‘” . $file_key . “‘”;
do_other_stuff();
return $id;
}
[/PHP]

… torej, po tem se poglobiš v aerodinamiko svojega avtomobila ((še ne tako zelo starega, ki ima komaj 6153km)) in ugotoviš, da je dejansko potreben popravka, kar na hitro opraviš na sosedovi ograji, …

Po vsem tem prideš domov, pogled ti zastane, srce vzrepeta in zavzdihneš: “Trava! Trava, moja prelepa trava, travica!”. Seveda takoj hitiš po fotoaparat in med preskakovanjem stopnic prepevaš:

Down the lane I walk with my sweet Mary, hair of gold and lips like cherries.
It’s good to touch the green, green grass of home.
Yes, they’ll all come to meet me, arms reaching, smiling sweetly.
It’s good to touch the green, green grass of home.

9 thoughts on “Trava človeku polepša dan

  1. Mogoče butasto vprašanje, ampak zakaj pa ne kar takole?

    $query = “SELECT image_id FROM p_image WHERE file_key = ‘$file_key ‘”;

    A ni lepš?

  2. Robi: input je $fileKey naslavljal pa je $file_key …

    verjetno se je generiral takle sql:

    SELECT image_id FROM p_image WHERE file_key = ”;

    ali pa

    SELECT image_id FROM p_image WHERE file_key = ‘null’;

    Bolj se zanasam na prvega 😉

  3. Nevem kaj se je zgeneriralo… verjetno prva varianta. Zelo verjetno. Nisem preverjal, ker me ze iz same depresije ni zanimalo. 😉

    Robi, drugace pa tkole:

    [php]
    $lala = “Lalalala $qwe Lalala”;
    $fafa = ‘Fafafaf ‘ . $qwe . ‘ Fafafafa’;
    [/php]

    Kaksna je razlika? Pri prvem primeru gre celoten string skozi PHPjev parser kjer se preveri ali je kje kaka spremenljivka vmes, potem se preveri kaj je v tisti spremenljivki in tako naprej.

    V drugem primeru pa se tisti trije stringi samo zlepijo skupaj, brez kakrsnegakoli parsanja. Baje je tako hitreje. Meril pa nisem.

    Aja, pomembno si je zapomnit samo to, ce hoces v drugem primeru string terminirat z \n, moras \n postaviti med dvojne narekovaje.

  4. RRunner, nisem zato vprašal… Vem, kaj je bilo narobe…

    Aha, BW, vidiš, tega pa nisem vedel… Drugače pa – če bi sestavil tvoj drugi string s prvim, bi dobil nekaj zanimivega…

    $zanimiv_string = $fafa . $lala;

    🙂

  5. prvo pravilo za razvoj v phpju: vklopi E_NOTICE.

    + funkciji je ime ge*, ne get
    + zna biti, da z njo podpiraš sql injection

    hello, i’m a php nazi 🙂

  6. Hm, tukajle bi v teoriji lahko podpiral SQL injection, vendar bi napadalec moral pripraviti tako vsebino datoteke, da bi hash funkcija, ki ustvari fileKey vrnila ven nek smiselen SQL stavek… 😉

Comments are closed.

Comments are closed.