17. 11. 2010. | #1 |
profesionalac
Professional
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
|
Zabrana pristupa direktnim linkom
Imam problem sledece prirode. Napravio sam 2 naloga za aplikaciju (korisnicki i administratorski). Oba naloga imaju svoj meni, znaci ako se loguje obicni korisnik vidi se jedan meni, ako se loguje administrator vidi se drugi meni i naravno to sve resio preko sesija. E sad kako ja da zabranim nekome ko nema pravo da direktno preko url pristupi nekom linku iz menija za koaj nema ovlastenja??? Da uprostim, ni jedan korisnik, pa ni onaj logovani, ne moze da vidi stranicu "registracija.php" koju moze da vidi samo administrator e sad ja treba da zabranim da do te stranice ne moze da se dodje ako neko ukuca http://mojsajt.com/registracija.php. Nadam se da me neko razumio.
|
17. 11. 2010. | #2 |
profesionalac
Qualified
Datum učlanjenja: 24.08.2009
Lokacija: Berlin
Poruke: 101
Hvala: 37
300 "Hvala" u 17 poruka
|
Prilikom ucitavanja stranice registracija.php potrebno je ispitati vrednost koja je setovana u sesiji koji je korisnik trenutno logovan, ako je korisnik pripadnik grupe koja moze da vidi stranicu onda tu stranicu treba prikazati a ako ne pripada grupi koja moze da vidi stranicu onda ga treba redirektovati na stranicu za logovanje ili prikazati poruku da korisnik nema prava da pristupi toj stranici.
|
17. 11. 2010. | #3 |
Dejan Katašić
Wrote a book
Datum učlanjenja: 10.06.2005
Lokacija: Novi Sad
Poruke: 1.017
Hvala: 129
86 "Hvala" u 43 poruka
|
... a kako to mogu da vide različiti meni?
Kažeš da je to rešeno preko sesija... isto tako možeš da ispitaš da li želiš da dopustiš korisniku pristup nekoj stranici. Ako utvrdiš da se dogodila "zabranjena stranica" podesićeš da za se za ispis koristi šablon za grešku, ili iskoristiš redirekciju zahteva na neku drugu stranicu (koju već odabereš prilikom dizajna ponašanja aplikacije). |
17. 11. 2010. | #4 |
profesionalac
Professional
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
|
Evo kako preko sesija: Imam 3 .inc fajla u zavisnosti ko se logovao prikazujem jedan od njih. U tim .inc fajlovima je meni. U bazi prilikom registracije dodjeljujem korisniku tip i pamtim ga u bazi, A je administrator,K je korisnik koji ce moci da se loguje. E sad ovo sve fino fercera dok ne dodje neka osoba X i kaze http://mojsajt.com/registracija.php a za njega je namjenjen meni 'mainmenu.inc' u kome nema registracija.php no direktnim pristupom preko linka on moze da otvori tu stranicu registracija.php.
Kôd:
<?php if (isset($_SESSION['tip']) && $_SESSION['tip'] === 'K') require ('usermenu.inc'); else if (isset($_SESSION['tip']) && $_SESSION['tip'] === 'A') require ('adminmenu.inc'); else require ('mainmenu.inc'); ?> |
17. 11. 2010. | #5 |
profesionalac
Qualified
Datum učlanjenja: 24.08.2009
Lokacija: Berlin
Poruke: 101
Hvala: 37
300 "Hvala" u 17 poruka
|
Samo dodaj na pocetku stranice registracija.php proveru sesije koji je korisnik, ako je odgovarajuci korisnik prikazi stranicu, ako nije samo ga redirektuj da se loguje ili mu prikazi poruku da nema pravo da vidi stranicu.
|
17. 11. 2010. | #6 |
novi klan
Professional
Datum učlanjenja: 03.02.2007
Poruke: 326
Hvala: 43
427 "Hvala" u 50 poruka
|
PHP kôd:
__________________
We professional we dealin' with business |
"Hvala" japan za poruku: |
17. 11. 2010. | #7 |
old school
Professional
Datum učlanjenja: 15.06.2005
Lokacija: Novi Beograd
Poruke: 448
Hvala: 21
70 "Hvala" u 46 poruka
|
Prosto, iskoristi taj kod na početku registracija.php koji će uraditi die() ili redirekciju za slučaj da ulogovani korisnik nije Admin.
__________________
http://www.vesic.org | Blog: http://www.vesic.org/blog/ | Fina kolekcija programa: http://www.vesic.org/programi/ |
17. 11. 2010. | #8 |
Drasko
Na probnom radu
Datum učlanjenja: 08.11.2010
Lokacija: Beograd
Poruke: 20
Hvala: 2
1 "Hvala" u 1 poruci
|
Mislim da nisi pazljivo procitao sta ti navode ljudi u prethodnim postovima.
U sustini na samom pocetku stranice pre bilo kakve obrade kazes ovako nesto: if (!isset($_SESSION['tip']) || $_SESSION['tip'] !== 'A') header("Location: index.php"); Znaci ako nema setovanu sesiju ili ako mu vrednost $_SESSION['tip'] nije A (nije admin), posalji ga na index.php. Ovo ti je samo jedan od nacina, ne moras uopste da ga saljes bilo gde i sl. Cim detektujes da nije admin ne dozvoljavas da se izvrsi dalji deo koda na toj stranici. EDIT: Sada sam video da sam napisao isti code ko japan |
17. 11. 2010. | #9 |
Dejan Katašić
Wrote a book
Datum učlanjenja: 10.06.2005
Lokacija: Novi Sad
Poruke: 1.017
Hvala: 129
86 "Hvala" u 43 poruka
|
Ako dopuštaš direktan pristup stranici, onda na njoj moraš i da proveravaš.
registracija.php Kôd:
... if ( ! isset($_SESSION['tip']) || $_SESSION['tip'] != 'A') die('zabranjen pristup ovoj stranici'); ... |
17. 11. 2010. | #10 | |
profesionalac
Professional
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
|
Citat:
|
|
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Kontrola pristupa fileu | blackshtef | Sva početnička pitanja | 20 | 22. 08. 2010. 00:06 |
Moneybooker i banka sa direktnim SWIFT / IBAN kodom | DejanVesic | e-Business | 12 | 13. 05. 2008. 21:07 |
Blokiranje pristupa senegalcima i ostalim spamerima | bluesman | Regular expression i htaccess | 6 | 01. 10. 2007. 14:01 |
zabrana upisa spec. znakova u bazu | robi | Sva početnička pitanja | 8 | 14. 06. 2007. 15:11 |
Ban-ovanje korisnika - zabrana pristupa sajtu | bluesman | Planiranje i usability | 19 | 21. 11. 2005. 06:44 |