DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 17. 11. 2010.   #1
slavkan
profesionalac
Professional
 
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
slavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished road
Default 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.
slavkan je offline   Odgovorite uz citat
Staro 17. 11. 2010.   #2
eraser
profesionalac
Qualified
 
Avatar eraser
 
Datum učlanjenja: 24.08.2009
Lokacija: Berlin
Poruke: 101
Hvala: 37
300 "Hvala" u 17 poruka
eraser is on a distinguished roaderaser is on a distinguished roaderaser is on a distinguished roaderaser is on a distinguished road
Default

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.
__________________
job board software | find job in USA
eraser je offline   Odgovorite uz citat
Staro 17. 11. 2010.   #3
noviKorisnik
Dejan Katašić
Wrote a book
 
Avatar noviKorisnik
 
Datum učlanjenja: 10.06.2005
Lokacija: Novi Sad
Poruke: 1.017
Hvala: 129
86 "Hvala" u 43 poruka
noviKorisnik će postati "faca" uskoro
Default

... 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).
noviKorisnik je offline   Odgovorite uz citat
Staro 17. 11. 2010.   #4
slavkan
profesionalac
Professional
 
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
slavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished road
Default

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');
		?>
slavkan je offline   Odgovorite uz citat
Staro 17. 11. 2010.   #5
eraser
profesionalac
Qualified
 
Avatar eraser
 
Datum učlanjenja: 24.08.2009
Lokacija: Berlin
Poruke: 101
Hvala: 37
300 "Hvala" u 17 poruka
eraser is on a distinguished roaderaser is on a distinguished roaderaser is on a distinguished roaderaser is on a distinguished road
Default

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.
__________________
job board software | find job in USA
eraser je offline   Odgovorite uz citat
Staro 17. 11. 2010.   #6
japan
novi klan
Professional
 
Avatar japan
 
Datum učlanjenja: 03.02.2007
Poruke: 326
Hvala: 43
427 "Hvala" u 50 poruka
japan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskoro
Default

PHP kôd:
if (!isset($_SESSION['tip']) || $_SESSION['tip'] != 'A') {
    
header('Location:index.php'); // ili vec bilo koja strana umesto index.php

Mali savet: koristi .php umesto .inc, i u tim fajlovima proveravaj da li im se pristupa direktno, ili se oni pozivaju iz nekih drugih.
__________________
We professional we dealin' with business
japan je offline   Odgovorite uz citat
"Hvala" japan za poruku:
Staro 17. 11. 2010.   #7
DejanVesic
old school
Professional
 
Avatar DejanVesic
 
Datum učlanjenja: 15.06.2005
Lokacija: Novi Beograd
Poruke: 448
Hvala: 21
70 "Hvala" u 46 poruka
DejanVesic će postati "faca" uskoro
Default

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/
DejanVesic je offline   Odgovorite uz citat
Staro 17. 11. 2010.   #8
draskom
Drasko
Na probnom radu
 
Avatar draskom
 
Datum učlanjenja: 08.11.2010
Lokacija: Beograd
Poruke: 20
Hvala: 2
1 "Hvala" u 1 poruci
draskom is on a distinguished road
Default

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
draskom je offline   Odgovorite uz citat
Staro 17. 11. 2010.   #9
noviKorisnik
Dejan Katašić
Wrote a book
 
Avatar noviKorisnik
 
Datum učlanjenja: 10.06.2005
Lokacija: Novi Sad
Poruke: 1.017
Hvala: 129
86 "Hvala" u 43 poruka
noviKorisnik će postati "faca" uskoro
Default

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');
...
Može elegantnije i smislenije, naravno, ali ako potrebu za ovakvom regulacijom imaš samo za jednu stranicu, može i ovako da ostane.
noviKorisnik je offline   Odgovorite uz citat
Staro 17. 11. 2010.   #10
slavkan
profesionalac
Professional
 
Datum učlanjenja: 30.08.2010
Poruke: 201
Hvala: 10
640 "Hvala" u 14 poruka
slavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished roadslavkan is on a distinguished road
Default

Citat:
Originalno napisao japan Pogledajte poruku
PHP kôd:
if (!isset($_SESSION['tip']) || $_SESSION['tip'] != 'A') {
    
header('Location:index.php'); // ili vec bilo koja strana umesto index.php

Mali savet: koristi .php umesto .inc, i u tim fajlovima proveravaj da li im se pristupa direktno, ili se oni pozivaju iz nekih drugih.
Hvala puno to je ono sto mi je trebalo.
slavkan je offline   Odgovorite uz citat
Odgovori



Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

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


Vreme je GMT +2. Trenutno vreme je 01:08.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.