Slanje konstante preko post metode

3

Slanje konstante preko post metode

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

isprobao sam ja i jedno i drugo i nema razlike Smile
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.
offline
  • 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.



offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3747
  • 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 Smile

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

@stankovic
Smile e to sam mislio Smile
@Rastafarii
pa nisam znao da se setuje i kada uradim back... to mi je bas glupo Smile

onda moram na svakoj inX.php stranici da ispitujem sesiju... ja sam naveo samo taj problem, a to moze da se uradi i sa svih 10-15 stranica Smile
i mislim da si zaboravio start_session();

kako ce sve stranice imati svoju sesiju ne moram da radim unset na njima, jer cu staru vrednost pregaziti sa novom Smile
dakle da uradim back i predjem na drugu stranu ta strana ima svoju sesiju i poslace pravi parametar tako da je ovo mozda i kraj mojim mukama... Smile

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3747
  • Gde živiš: 127.0.0.1

Svemirko ::i mislim da si zaboravio start_session() Smile

E sad, ocekujes da u cik zore mislim na bas sve detalje Smile naravno da treba session_start();

Ako imas podesavanja sesija na stranici, ona se primenjuju svaki put kada je otvoris, makar i sa back Smile lepo podesi sesiju na svakoj stranici i amin Smile

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

jes vala Smile

nego trebalo bi da i sad neko moze da pozove uni.php sa drugog sajta, samo sto sada je zastita veca jer ne vidi prko source sesiju kao input tag ?
Jel ovde lezala sigurnost izmedju ta dva nacina ? Smile ja tako zakljucio jer jedina razlika je sto se ovo vidi a ovo ne... a i jedno i drugo moze da se pokrene sa drugog sajta Smile

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3747
  • Gde živiš: 127.0.0.1

Sesija moze da se setuje i na drugom domenu, jedino sto treba da "nabode" naziv sesije i njenu vrednost Smile a onako je bilo "na izvol'te" u kodu Smile

mada mozes, sigurnosti radi, da dodas i ovaj deo koda:

if (!empty($httprefi) { $exploded = explode("/",$httprefi); if ($exploded[2] != "www.tvojsajt.com" and $exploded[2] != "tvojsajt.com") { die('Nece moci ove noci!'); } }

koji ce da proverava da li je prethodna stranica sa tvog domena, mada se desava da, u zavisnosti od podesavanja, browser ne posalje referer...

offline
  • Pridružio: 11 Maj 2005
  • Poruke: 871
  • Gde živiš: Aleksinac - Niš

@rastafarii
Ni to ne pomaze... moze lako da se lazira referer.

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3747
  • Gde živiš: 127.0.0.1

@stankovic: to stoji, samo tom logikom nijedan vid zastite mu ne zavrsava posao, jer svaki od njih moze da se "hakne"...

Ono sto ja predlazem je da kombinacijom vise metoda koje je moguce "lazirati" dobije resenje koje je otpornije na upade spolja nego svaka metoda pojedinacno Smile moze i da doda md5() ili sha1() hash stranice na kojoj se nalazi forma (recimo md5(date("dmy") . "in1.php"); ili vec tako nesto) u jednu od session promenljivih...

Sve se odvija na serverskoj strani, i ukoliko nema pojedinacne echo-e za svaku gresku vec jedan globalni, osoba kojoj je cilj da njegovu zastitu "sredi" ili nece znati sta sve treba da lazira, ili ce izgubiti dosta vremena na brute force attack Smile

offline
  • 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 Smile

Ko je trenutno na forumu
 

Ukupno su 681 korisnika na forumu :: 23 registrovanih, 4 sakrivenih i 654 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: anbeast, bojank, Djokislav, djordje92sm, DonRumataEstorski, dragoljub11987, Georgius, hyla, Kenanjoz, Koridor, kripo, krkalon, Kubovac, kybonacci, milenko crazy north, Mixelotti, Panonsky, pein, Romibrat, rovac, vlad4, wolverined4, yrraf