Ik wil dat index.php altijd wordt aangeroepen, en aan de hand van een get variabele of session variabele de juiste pagina wordt geinclude.
Er is een publiek gedeelte, daarnaast 4 verschillende gedeeltes voor 4 verschillende rollen.
Als iemand inlogt dan wordt $_SESSION['section'] geset. Dan wordt gekeken of er in de map met de naam $_SESSION['section'] een bestand aanwezig is met de naam $_GET['page'].
Ik heb gegoogled op manieren waarop ik dit kan doen, en wat de veiligheid is, maar ik mis even het overzicht of wat ik gemaakt heb echt veilig is. Moet ik hier bijvoorbeeld de user input converteren met htmlentities ofzoiets? Graag een voorbeeldje dan wat het probleem kan zijn.
De code van index.php :
Er is een publiek gedeelte, daarnaast 4 verschillende gedeeltes voor 4 verschillende rollen.
Als iemand inlogt dan wordt $_SESSION['section'] geset. Dan wordt gekeken of er in de map met de naam $_SESSION['section'] een bestand aanwezig is met de naam $_GET['page'].
Ik heb gegoogled op manieren waarop ik dit kan doen, en wat de veiligheid is, maar ik mis even het overzicht of wat ik gemaakt heb echt veilig is. Moet ik hier bijvoorbeeld de user input converteren met htmlentities ofzoiets? Graag een voorbeeldje dan wat het probleem kan zijn.
De code van index.php :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| <?php session_start(); // de root definieren define("ROOT","D:/Mijn server/xampp/htdocs/private/kvk/"); // einde definieren root constant function checkPage($sectie) { $filename = $sectie .'/'. $_GET['page']; if (!ctype_alnum($_GET['page'])) { $page = 'error.php'; } elseif (!file_exists(ROOT."_pages/". $filename)) { $page = 'error.php'; } else { $page = $_GET['page'] . '.php'; } return $page; } // kijk in welke map er gekeken moet worden (isset($_SESSION['section'])? ($sectie = $_SESSION['section']) : ($sectie = 'publiek')); // kijk welk bestand uit die map geinclude moet worden (isset($_GET['page'])? ($page = checkPage($sectie)) : ($page = 'home.php')); include(ROOT .'_pages/'. $sectie .'/'. $page); ?> |
[ Voor 21% gewijzigd door dossiewossie op 20-09-2005 15:55 ]