» »

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: /");
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 ;(
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,
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!

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?
www.at-crew.net

Brilko ::

Ne najbolj, ampak dokler se pri takih zadevah ustvaljah kot je ta tema bo OK... ;)

Zgodovina sprememb…

  • spremenil: Brilko ()

tomitza ::

kakšnih temah?
www.at-crew.net

Brilko ::

Vsebina te teme v katero si pred parimi minutami vpisau post. ;)

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š.
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.

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.
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:
<?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? 8-O 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…

tomitza ::

kaj pa če maš samo username v cookiju je kul?
www.at-crew.net

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 >:D >:D
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 ...:D

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.
Č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 :D
Rad bi bil pingvin.

tomitza ::

maš prou...

bom naredu kakšno random zadevo. :D
www.at-crew.net


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Cookie in PHP...

Oddelek: Izdelava spletišč
61055 (1000) Trubadur
»

sessions

Oddelek: Izdelava spletišč
151396 (1258) multiplayer
»

oop+php+sessions

Oddelek: Izdelava spletišč
152401 (2009) cahahopie
»

Tracking v PHPju

Oddelek: Programiranje
61599 (1484) darh
»

PHP logiranje na stran

Oddelek: Programiranje
141362 (1088) ahac

Več podobnih tem