Best practice, restriktioner

Tags:    php

Halløj Udviklere,

Jeg er begyndt at programmere på en ny måde (MVC), hvilket ikke ligger helt nemt, men det kommer da. Jeg har udviklet et simpelt brugersystem, men jeg skal selvfølgelig kunne lave restriktioner på hvad man som bruger kan se, og ikke se.

Normalt ville jeg bare have en session som jeg ville kontrollere:
Fold kodeboks ind/udPHP kode 


min MVC version er bygget op omkring inkludering af views i et template. Det er bygget op således:

header.php
template.php
footer.php

Den eneste side jeg kalder er altid template.php, så parser jeg data dertil, for at fortælle den hvad content den skal hente:
Fold kodeboks ind/udPHP kode 


så fx:

Fold kodeboks ind/udPHP kode 


derved vil min template.php hente 'front_page.php' og smide ind.

Hele problemstillingen er jo så at jeg skal holde view sider fri for php kode, men derved kan man vel også komme frem til siden?

ex:
control_panel.php - restricted/kun hvis man er logget ind


Når man logger ind bliver man smidt til denne url:
site/frontpage/cp

Dette kører denne controller:
frontpage.php
Fold kodeboks ind/udPHP kode 


altså, hvis man bliver sendt til cp(control_panel.php), så kontrollerer den om man er logget ind, via is_logged_in() funktionen:
Fold kodeboks ind/udPHP kode 


Den kontroller med den session der er. Altså hvis den her funktion returnerer true, så sender den en videre.

Det virker også helt fint, hvis du ikke er logget ind, så kommer man ikke ind på siden.

Problemet er nu at hvis man kender pathen til den view side som jeg forsøger at forhindre adgang til, så kan man godt se den. Altså hvis man istedet for at gå igennem ens controllers (site/frontpage/cp), så går man direkte til siden: site/skjult_side/control_panel.php

fordi der er jo ikke noget som forhindrer en direkte åbning af filen.

Så basicly; hvad gør man her?

Håber det gav mening :o






4 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
du kan bare ligge en .htaccess fil i den mappe hvor de filer der skal være skjulte er og sætte følgende ind:

Fold kodeboks ind/udKode 


Så er det problem løst



ja..., da du brugere php, det andet sker via apache...



du kan bare ligge en .htaccess fil i den mappe hvor de filer der skal være skjulte er og sætte følgende ind:

Fold kodeboks ind/udKode 


Så er det problem løst



men vil jeg så stadigvæk godt kunne hive skidtet ind via mine controllers?



t