Poslao: 01 Mar 2008 00:43
|
offline
- Svemirko
- Legendarni građanin
- Pridružio: 24 Mar 2004
- Poruke: 3962
- Gde živiš: Zemun
|
isprobao sam ja i jedno i drugo i nema razlike
Ta konstanta mi ne treba, jos bi bilo pozeljno da vazi samo jedno slanje....
jer rupa i dalje postoji, ako neko uradi back i ako ode na stranicu koja uopste nema sesiju i posalje istoj formi koja zahteva sesiju forma ce to prihvatiti ! ! !
in1.php
<?php
session_start();
$_SESSION['kljuc'] = 321;
?>
<form metod="post" action="uni.php">
<input type="submit" value="salji">
</form>
in2.php
<form metod="post" action="uni.php">
<input type="submit" value="salji">
</form>
uni.php
<?
session_start();
$httprefi = getenv("HTTP_REFERER");
if(isset($_SESSION['kljuc'])) {
$poruka = $_SESSION['kljuc'];
unset($_SESSION['kljuc']);
//session_destroy();
$meta ='<META HTTP-EQUIV="refresh" CONTENT="5; URL='. $httprefi .'" >';
}
else {
$poruka = "Greska, nema sesije";
$meta ='<META HTTP-EQUIV="refresh" CONTENT="5; URL='. $httprefi .'" >';
}
?>
<html>
<head>
<?=$meta ?>
</head>
<body>
<?=$poruka ?>
</body>
</html>
dakle otvaram in1.php i saljem kako posaljem dobijam da je sesija 321 rabim back pre redirecta umesto in1.php pisem in2.php u adres baru saljem i dobijam odgovor 321 iako sesija na in2.php stranici ne postoji, a prethodno pokretanje je trebalo da unisti sesiju ! ! !
sta sad ?
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 01 Mar 2008 13:28
|
offline
- stankovic
- Prijatelj foruma
- Pridružio: 11 Maj 2005
- Poruke: 871
- Gde živiš: Aleksinac - Niš
|
Pa zasto na stranici 2 ne stavis neki drugi kljuc?
in2.php
<?php
session_start();
$_SESSION['kljuc'] = 543;
?>
<form metod="post" action="uni.php">
<input type="submit" value="salji">
</form>
Dopuna: 01 Mar 2008 13:28
Sad vidim sta si mislio... kako god okrenes sistem se moze zavarati.
|
|
|
|
Poslao: 01 Mar 2008 13:35
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
in2.php
<?php
if (isset($_SESSION['kljuc'])) {
unset($_SESSION['kljuc']);
}
?>
<form metod="post" action="uni.php">
<input type="submit" value="salji">
</form>
i malo objasnjenje... kad otvoris in1.php, on ti setuje sesiju. Kad predjes na uni.php, sesija se brise (unset), ali ako pritisnes back, onda se vracas na in1.php koji opet namesta sesiju - pa ti je zato aktivna
|
|
|
|
|
|
|
|
Poslao: 02 Mar 2008 00:13
|
offline
- stankovic
- Prijatelj foruma
- Pridružio: 11 Maj 2005
- Poruke: 871
- Gde živiš: Aleksinac - Niš
|
@rastafarii
Ni to ne pomaze... moze lako da se lazira referer.
|
|
|
|
|
Poslao: 02 Mar 2008 00:56
|
offline
- stankovic
- Prijatelj foruma
- Pridružio: 11 Maj 2005
- Poruke: 871
- Gde živiš: Aleksinac - Niš
|
Glavno pitanje je da li mu je ovolika zastita zaista potrebna? Koliko ce vremena provesti praviti sve ovo i da li vredi?
Ja bih ako to nije toliko bitno ostavio ovako prosto sa session.
Ako je bas potrebno onda koristi kombinaciju svega i svacega
|
|
|
|