Forum » Izdelava spletišč » unset cookie
unset cookie
tomitza ::
zanimam me kako tuki zbrišem kuki..na svoji strani mam scripto prijavo uporabnikov pa me zanima kako naredim odjavo, ker se mi noče odjavit
koda
unset( $_SESSION['prijavljen'] );
unset( $_SESSION['online'] );
unset( $_SESSION['upor_id'] );
unset( $_SESSION['livel'] );
setcookie( "prijavljen()" ,"",0,"/");
header("Location: /");
koda
unset( $_SESSION['prijavljen'] );
unset( $_SESSION['online'] );
unset( $_SESSION['upor_id'] );
unset( $_SESSION['livel'] );
setcookie( "prijavljen()" ,"",0,"/");
header("Location: /");
www.at-crew.net
MasterBlaster ::
Čas cookia postaviš v preteklost:
setcookie( "prijavljen()" ,"",time()-3600,"/");
Pa prijave ne voditi v cookiju. To kar samo po sebi kliče po zlorabi
setcookie( "prijavljen()" ,"",time()-3600,"/");
Pa prijave ne voditi v cookiju. To kar samo po sebi kliče po zlorabi
Tk je pa pika .
tomitza ::
kje pa jo nej vodim? en primer bi prosil.
tut to tvoje sm probu pa mi ne dela za unset...
mam pa na začetku strani
ob_start
pa na koncu ob_end_flush
vmes pa session_start
hvala za odg.
lp,
tut to tvoje sm probu pa mi ne dela za unset...
mam pa na začetku strani
ob_start
pa na koncu ob_end_flush
vmes pa session_start
hvala za odg.
lp,
www.at-crew.net
Brilko ::
Ja nastaviš kuki za čas ki je že pretekel, ker se potem kao avtomatsko zbriše.
MasterBlaster: če narediš luknjastega res. Kakšna pa je zate razlika med tem, če maš cel sistem narejen s kukiji ali samo za stalno prijavo? Isto je!
MasterBlaster: če narediš luknjastega res. Kakšna pa je zate razlika med tem, če maš cel sistem narejen s kukiji ali samo za stalno prijavo? Isto je!
tomitza ::
sm ga že spedenu
neki je blo narobe pri preverjanju za avtomatsko prijavo. hvala za odg!
jst v cookiju hranim username in password sam je md5 kul?
neki je blo narobe pri preverjanju za avtomatsko prijavo. hvala za odg!
jst v cookiju hranim username in password sam je md5 kul?
www.at-crew.net
Brilko ::
Ne najbolj, ampak dokler se pri takih zadevah ustvaljah kot je ta tema bo OK...
Zgodovina sprememb…
- spremenil: Brilko ()
MasterBlaster ::
Brilko: Manj kot je stvari v cookiju, manjši je maneverski prostor potencialnega napadalca.
Za stalno prijavo pač moraš imeti nekaj shranjeno v cookiju, pa naj to vsaj ne bo username ali password. Najbolje je, da se ob vsaki prijavi generira nek random niz, ki ga shraniš v uporabniški profil v bazi in v cookie. Pri prijavi se potem preko tega niza identificira uporabnika. Ob odjavi pa se samo iz baze ta niz zbriše in se ni več treba ukvarjati s cookiji, ker stari cookie pač ni več uporaben. V če imaš v cookiju username in password, lahko napadalec prestreže cookie in se nemoteno prijavlja, pa če se ti še tolikokrat odjaviš.
Za stalno prijavo pač moraš imeti nekaj shranjeno v cookiju, pa naj to vsaj ne bo username ali password. Najbolje je, da se ob vsaki prijavi generira nek random niz, ki ga shraniš v uporabniški profil v bazi in v cookie. Pri prijavi se potem preko tega niza identificira uporabnika. Ob odjavi pa se samo iz baze ta niz zbriše in se ni več treba ukvarjati s cookiji, ker stari cookie pač ni več uporaben. V če imaš v cookiju username in password, lahko napadalec prestreže cookie in se nemoteno prijavlja, pa če se ti še tolikokrat odjaviš.
Tk je pa pika .
Brilko ::
Tako kot si povedal, ampak če se že gre lahko na istem principu narediš to s kukiji in brez sej, je kar nekaj strani delujočih samo na keksih...
No kar me je edino motilo je to, da je blo slišati da je obvezno keksat sistem ranljiv.
No kar me je edino motilo je to, da je blo slišati da je obvezno keksat sistem ranljiv.
tomitza ::
Živjo,
mi lahko pomagaš pri tej stvari?
tole je koda za prijavo in cookie set:
session_start();
if($_GET["naredi"]=="preveri") {
include ('/var/www/www.at-crew.net/Connectme/connectme.php...
$upor = $_POST['upor'];
$geslo = $_POST['geslo'];
if((!$upor) || (!$geslo)){
echo "Prosim vpiši vse podatke!
";
// include 'http://www.at-crew.net/?request_page=pr...
exit();
}
$geslo = md5($geslo);
$sql = mysql_query("SELECT * FROM uporabniki WHERE upor='$upor' AND geslo='$geslo' ");
$login_check = mysql_num_rows($sql);
if($login_check > 0){
while($row = mysql_fetch_array($sql)){
$upor_id=$row["upor_id"];
foreach( $row AS $key => $val ){
$$key = stripslashes( $val );
}
session_register('upor');
$_SESSION['upor'] = $upor;
session_register('livel');
$_SESSION['livel'] = $livel;
session_register('upor_id');
$_SESSION['upor_id'] = $upor_id;
session_register('geslo');
$_SESSION['upor_id'] = $geslo;
$_SESSION['online'] = true;
$_SESSION['prijavljen'] = true;
setcookie("prijavljen_up", $upor_id, time()+86400, "/");
setcookie("prijavljen_ge", $geslo, time()+86400, "/");
mysql_query("UPDATE uporabniki SET zadnja_prijava=now() WHERE upor_id='$upor_id'");
header("Location: http://www.at-crew.net");
}
} else {
echo "Ne moreš se prijaviti!
";
// include 'http://www.at-crew.net/?request_page=pr...
} //pjivaviti
} else {//preveri
include("prijava.php");
} //preveri
tole je koda za preverjanje nastavljenega cookija za avtomatsko prijavo, če ugasneš brskalnik:
if(isset($_COOKIE['prijavljen_up']))
if(isset($_COOKIE['prijavljen_ge']))
{
// uporabnik ni prijavljen
}
else
{
include("/var/www/www.at-crew.net/Connectme/connectme.php...
$upor_id=$_COOKIE["prijavljen_up"];
$geslo=$_COOKIE["prijavljen_ge"];
include("/var/www/www.at-crew.net/Connectme/connectme.php...
$sql = mysql_query("SELECT * FROM uporabniki WHERE upor_id='$upor_id' AND geslo='$geslo' AND ban='0' ");
$login_check = mysql_num_rows($sql);
while($row = mysql_fetch_array($sql)){
$upor_id=$row["upor_id"];
$geslo=$row["geslo"];
$upor=$row["upor"];
$livel=$row["livel"];
session_register('upor');
$_SESSION['upor'] = $upor;
session_register('livel');
$_SESSION['livel'] = $livel;
session_register('upor_id');
$_SESSION['upor_id'] = $upor_id;
$_SESSION['prijavljen_up'] = true;
session_register('geslo');
$_SESSION['geslo'] = $geslo;
$_SESSION['prijavljen_ge'] = true;
setcookie("prijavljen_up", $upor_id, time()+86400, "/");
setcookie("prijavljen_ge", $geslo, time()+86400, "/");
}
}
tole ja pa koda za unset cookie:
unset( $_SESSION['prijavljen'] );
unset( $_SESSION['online'] );
unset( $_SESSION['upor_id'] );
unset( $_SESSION['livel'] );
setcookie( "prijavljen_up()" ,"$upor_id",time()-86400,"/");
setcookie( "prijavljen_ge()" ,"$geslo",time()-86400,"/");
header("Location: /");
Prijava normalno deluje...odjava tudi...
Ko pa ostanem prijavljen in ugasnem explorer, se pa moram spet ponovno prijaviti, ko ponovno prižgem explorer
Kaj je tukaj pri teh kodah narobe da ne preveri cookija?
Pa še ena fora je...če imam odprto svojo stran v enem explorerju in pa katerokoli drugo na drugem explorerju (IE oboje) mi dela avtomatksa prijava..če pa zaprem oba in odprem samo mojo stran se moram pa spet ponovno prijaviti...
Hvala za pomoč in lp,
T.
mi lahko pomagaš pri tej stvari?
tole je koda za prijavo in cookie set:
session_start();
if($_GET["naredi"]=="preveri") {
include ('/var/www/www.at-crew.net/Connectme/connectme.php...
$upor = $_POST['upor'];
$geslo = $_POST['geslo'];
if((!$upor) || (!$geslo)){
echo "Prosim vpiši vse podatke!
";
// include 'http://www.at-crew.net/?request_page=pr...
exit();
}
$geslo = md5($geslo);
$sql = mysql_query("SELECT * FROM uporabniki WHERE upor='$upor' AND geslo='$geslo' ");
$login_check = mysql_num_rows($sql);
if($login_check > 0){
while($row = mysql_fetch_array($sql)){
$upor_id=$row["upor_id"];
foreach( $row AS $key => $val ){
$$key = stripslashes( $val );
}
session_register('upor');
$_SESSION['upor'] = $upor;
session_register('livel');
$_SESSION['livel'] = $livel;
session_register('upor_id');
$_SESSION['upor_id'] = $upor_id;
session_register('geslo');
$_SESSION['upor_id'] = $geslo;
$_SESSION['online'] = true;
$_SESSION['prijavljen'] = true;
setcookie("prijavljen_up", $upor_id, time()+86400, "/");
setcookie("prijavljen_ge", $geslo, time()+86400, "/");
mysql_query("UPDATE uporabniki SET zadnja_prijava=now() WHERE upor_id='$upor_id'");
header("Location: http://www.at-crew.net");
}
} else {
echo "Ne moreš se prijaviti!
";
// include 'http://www.at-crew.net/?request_page=pr...
} //pjivaviti
} else {//preveri
include("prijava.php");
} //preveri
tole je koda za preverjanje nastavljenega cookija za avtomatsko prijavo, če ugasneš brskalnik:
if(isset($_COOKIE['prijavljen_up']))
if(isset($_COOKIE['prijavljen_ge']))
{
// uporabnik ni prijavljen
}
else
{
include("/var/www/www.at-crew.net/Connectme/connectme.php...
$upor_id=$_COOKIE["prijavljen_up"];
$geslo=$_COOKIE["prijavljen_ge"];
include("/var/www/www.at-crew.net/Connectme/connectme.php...
$sql = mysql_query("SELECT * FROM uporabniki WHERE upor_id='$upor_id' AND geslo='$geslo' AND ban='0' ");
$login_check = mysql_num_rows($sql);
while($row = mysql_fetch_array($sql)){
$upor_id=$row["upor_id"];
$geslo=$row["geslo"];
$upor=$row["upor"];
$livel=$row["livel"];
session_register('upor');
$_SESSION['upor'] = $upor;
session_register('livel');
$_SESSION['livel'] = $livel;
session_register('upor_id');
$_SESSION['upor_id'] = $upor_id;
$_SESSION['prijavljen_up'] = true;
session_register('geslo');
$_SESSION['geslo'] = $geslo;
$_SESSION['prijavljen_ge'] = true;
setcookie("prijavljen_up", $upor_id, time()+86400, "/");
setcookie("prijavljen_ge", $geslo, time()+86400, "/");
}
}
tole ja pa koda za unset cookie:
unset( $_SESSION['prijavljen'] );
unset( $_SESSION['online'] );
unset( $_SESSION['upor_id'] );
unset( $_SESSION['livel'] );
setcookie( "prijavljen_up()" ,"$upor_id",time()-86400,"/");
setcookie( "prijavljen_ge()" ,"$geslo",time()-86400,"/");
header("Location: /");
Prijava normalno deluje...odjava tudi...
Ko pa ostanem prijavljen in ugasnem explorer, se pa moram spet ponovno prijaviti, ko ponovno prižgem explorer
Kaj je tukaj pri teh kodah narobe da ne preveri cookija?
Pa še ena fora je...če imam odprto svojo stran v enem explorerju in pa katerokoli drugo na drugem explorerju (IE oboje) mi dela avtomatksa prijava..če pa zaprem oba in odprem samo mojo stran se moram pa spet ponovno prijaviti...
Hvala za pomoč in lp,
T.
www.at-crew.net
Zgodovina sprememb…
- spremenil: tomitza ()
rokpok ::
1) Umakni password-e in podobne kritične podatke iz cookie-jev.
2) Čisto osnoven primer autologin-a:
2) Čisto osnoven primer autologin-a:
<?php if (prijavljen) { $cookieName = ini_get ('session.name'); if ($_POST['auto_prijava'] == true) { setcookie ($cookieName, session_id (), time () + 86400); } } ?>
Rad bi bil pingvin.
sverde21 ::
Umakni password-e in podobne kritične podatke iz cookie-jev.
portal e107 ma tud v cookijih passworde ampak ima md5 zakodirano geslo iz baze še enkrat zakodirano z md5 tak d morš met en fajn comp da dobiš tapru 32 mestn md5 in potem moraš še ta md5 sesut. Se pravi, geslo je kar dobro zaščiteno, čeprav je v cookiju
<?php echo `w`; ?>
rokpok ::
Zakaj bi se uporabnik identificiral s pomočjo gesla, če pa se lahko z nekim naključno izbranim ID-jem? Pa en lep link, o "vsemogočnem" MD5: Klik.
Rad bi bil pingvin.
MasterBlaster ::
ima md5 zakodirano geslo iz baze še enkrat zakodirano z md5 tak d morš met en fajn comp da dobiš tapru 32 mestn md5 in potem moraš še ta md5 sesut
Če pa tak cookie prestrežeš, pa lahko uporabljaš uporabnikov profil brez omejitev,čeprav ne veš gesla.
@rokpok: Tak način se sicer vredu, samo ne smeš imeti vklopljenega garbage colectorja za session-e. To pa ni ravno najboljša ideja, ker se ti potem ful nabere session datotek na serverju.
Tk je pa pika .
Zgodovina sprememb…
- spremenilo: MasterBlaster ()
sverde21 ::
Pa en lep link, o "vsemogočnem" MD5: Klik.
S tistim linkom si čisto nič ne pomagaš, ker na tisti strani lahko razbiješ max 10 (pa še to pretiravam) mestno geslo. Preberi si malo. Tudi RainBow tabele je treba računati, računanje traja še dalj, kot preverjanje vseh kombinacij, vendar je potem analiza s pomočjo teh tabel hitrejša. Da boš ti sesu 32 mestno geslo kodirano z md5 se boš hudičevo namučil, sicer obstaja še ena pot z malce prirejenim bruteforcerjem, ampak raje nebi o tem, ker presega to temo.
<?php echo `w`; ?>
MasterBlaster ::
kaj pa če maš samo username v cookiju je kul?
Ja je, če hočeš na steržaj odpreti vrata hackerjem
Tk je pa pika .
Brilko ::
Če že hočeš dati samo username v kuki, se potem bolj splača da te na strani že samo vpraša kot kir uporabnik se želiš logirat, pa ti kar samo zapiše uporabniško ime v kuki kterega si vpisu v formo... simpl ...
rokpok ::
@MasterBlaster: kot rečeno - samo osnovno primer, ki pa še zdaleč ni idealen.
@sverde21: vem, da si v tem konkretnem primeru ne moreš pomagati s tistim (omejitev na 10 mest). To sploh ni point.
@tomitza: pa daj premisli malo - ti bi samo uporabniško ime uporabil za identifikacijo?
@sverde21: vem, da si v tem konkretnem primeru ne moreš pomagati s tistim (omejitev na 10 mest). To sploh ni point.
Če pa tak cookie prestrežeš, pa lahko uporabljaš uporabnikov profil brez omejitev,čeprav ne veš gesla.- to je bistvo. Zakodirano geslo bo vedno enako, če pa uporabiš drugi način, pa se bo id spreminjal.
@tomitza: pa daj premisli malo - ti bi samo uporabniško ime uporabil za identifikacijo?
Rad bi bil pingvin.
tomitza ::
ja a tudi če nima hecker gesla lahko dostopa na recimo adminove strani? sej gesla ni v cookiju?
www.at-crew.net
rokpok ::
Glej. V cookie zapišeš nekaj, s čimer lahko kasneje identificiraš uporabnika. Pa poglejmo tvoj način. V cookie-ju maš zapisano uporabniško ime. Admin ima v cookie-ju zapisano uporabniško ime admin. Ti v php skripti preveriš, če uporabniško ime obstaja in ga na podlagi tega logiraš. Potem pa pridem zlobni jaz, in imam v cookie-ju zapisano uporabniško ime admin... Dalje pa odvisno, kakšne volje bom
Rad bi bil pingvin.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Cookie in PHP...Oddelek: Izdelava spletišč | 1151 (1096) | Trubadur |
» | sessionsOddelek: Izdelava spletišč | 1484 (1346) | multiplayer |
» | oop+php+sessionsOddelek: Izdelava spletišč | 2584 (51) | cahahopie |
» | Tracking v PHPjuOddelek: Programiranje | 1709 (1594) | darh |
» | PHP logiranje na stranOddelek: Programiranje | 1459 (1185) | ahac |