[ webjunior @ 14.05.2012. 17:23 ] @
Code (php):


function daj_polja($field) {
$query = "SELECT `$field` FROM `korisnici` WHERE `id`='".$_SESION['user_id']."'";
     if ($query_run = mysql_query($query)) {
          if ($query_result = mysql_result($query_run, 0, $field)) {
               return $query_result;
          }
     }
}
 


izbacuje mi grešku:


Notice: Undefined variable: _SESION in D:\Dyka\xampp\htdocs\www\flydragon\core.inc.php on line 18

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 6 in D:\Dyka\xampp\htdocs\www\flydragon\core.inc.php on line 20

Notice: Undefined variable: _SESION in D:\Dyka\xampp\htdocs\www\flydragon\core.inc.php on line 18

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in D:\Dyka\xampp\htdocs\www\flydragon\core.inc.php on line 20
Ulogovani ste, vaš nadimak je: , a vaš email je: . Odjava

Ovo je linija 18:

$query = "SELECT `$field` FROM `korisnici` WHERE `id`='".$_SESION['user_id']."'";

linija 20:

if ($query_result = mysql_result($query_run, 0, $field)) {
[ PHPovac @ 14.05.2012. 17:29 ] @
$_SESSION
[ webjunior @ 14.05.2012. 17:35 ] @
neverovatno...ubih se trazeci po php manual query mi nikako ne ide neko stavlja ' neko " neko ` neko dodaje . ...sve sam se pogubio...
[ PHPovac @ 14.05.2012. 19:50 ] @
Vidiš da php kaže Undefined variable: _SESION... da si čitao poruku o grešci video bi o čemu se radi...
[ webjunior @ 15.05.2012. 08:01 ] @
video sam ja to ali sam mislio da je greska negde ispred, mislio sam da moram da definisem varijablu negde drugde...totalno sam prevideo to S :)
[ doktor83 @ 16.05.2012. 23:27 ] @
jedan savet: kao sto ne verujes user inputu,tako nemoj ni sesijama! stavi intval($_SESSION['user_id']) , nece ti naskoditi :)
[ dakipro @ 16.05.2012. 23:40 ] @
A kako se moze sadrzaj sesije izmeniti (uhakovati?) do te mere da ne moze da se veruje sadrzaju u sesiji?
Jer ako ne moze verovati tome sto pise u sesiji slicno kao i user inputu, nekako dodje nelogicno oslanjati se uopste da je $_SESSION['user_id'] ispravan user koji ima odredjene privilegije i pristup nekim akcijama i podacima...
Znam da se sesija moze ukrasti, pa cak i session fajl da se moze izmeniti, ali ako se sesija ukrade, to je to, opet je taj podatak u sesiji verodostojan samo nije to taj korisnik koji fizicki sedi za kompom, a ako se pak session fajl izmeni na serveru (ili u bazi, gde god da se cuva) onda taj koji vec ima takav pristup serveru ima sigurno lakse nacine da dodje do toga sto uopste i trazi na serveru
Mislim, ja skoro pa slepo verujem da je sadrzaj sessije ono sto sam ja u "kontrolisanim" uslovima upisao u sesiju, a nisam se nesto upustao u istrazivanje po netu oko bezbednosti protiv nekih takvih hakova, kako se taj sadrzaj moze izmeniti?
[ doktor83 @ 17.05.2012. 09:54 ] @
Potpuno si ti u pravu dakipro, nisam ja to predlozio iz razloga jer moze neko da mu promeni podatke u sesiji(mada je i to moguce) , vec da bude siguran
da je predao integer u queryju na mesto gde se i ocekuje integer. Paranoja - nikad se ne zna.

Primer:

Scenario where attacker and victim shares the same PHP server.

Attack is fairly easy:

The attacker first visits the victim's page, and e.g. log on.
Attacker then uploads a PHP script to his account, and has it display context of $_SESSION (set by victim script).
Attacker determines which variable needs to be changed, uploads a script which sets this variable, executes it.
Attacker visits victim pages to see if anticipated exploit worked.

This attack only requires that victim and attacker share the same PHP server. The attack is not dependent on victim and attacker having the same virtual hostname, as it is trivial for attacker to move the session identifier cookie from one cookie domain to another.