Accesso area riservata

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ciao a tutti
per evitare di poter accedere tramite url alle pagine riservate ho inserito nella pag da cui accedo alle riservate il codice php

PHP:
<?php
if(!isset($_SESSION)){
session_start ();
}
$_SESSION['verifica01']="mia_parola";
?>

in tutte le pagine riservate

PHP:
<?php
if(!isset($_SESSION)){
session_start();
}
@$code = $_SESSION['verifica01'];
if($code != "mia_parola" || $code=="" ){
header("Location: http://www.mio_sito.com/index.php");
}
?>
quindi se sulla riga di comando del bw scrivo
www.mio_sito.com/admin/primaRiservata.php
vengo reindirizzato all'index.php e sin qui tutto OK, ma..
se accedo alla pagina primaRiservata.php normalmente, la sessione mi si crea, torno alla index.php e sul bw digito
www.mio_sito.com/admin/primaRiservata.php (o altra riservata), essendosi la sessione creata, riesco ad entrare comunque e accedere a tutte le pagine riservate (compresa quella modifica/aggiungi user o passw)

sto sbagliando qualcosa, come impedire questo trucchetto?
 
PHP:
@$code = $_SESSION['verifica01'];
hai messo l'operatore di silence davanti alla variabile perché se questa non è settata ti da errore?
 
ciao
ho messo @ in modo che se non fosse settata non dia errore.
se entro direttamente con riga di comando non è settata.
$_SESSION['verifica01']; si crea nella pagina index.php dove nel menù c'è il link "admin" alla primaRiservata.php


p.s.
sto lavorando in locale. in remoto è diverso?
 
ciao
ho messo @ in modo che se non fosse settata non dia errore.
se entro direttamente con riga di comando non è settata.
$_SESSION['verifica01']; si crea nella pagina index.php dove nel menù c'è il link "admin" alla primaRiservata.php
p.s.
sto lavorando in locale. in remoto è diverso?

non è una procedura ortodossa, crei una variabile di sessione che potrebbe essere valorizzata arbitrariamente...
 
$code deve esistere soltanto se viene valorizzata, soprattutto perché si tratta di una variabile destinata a contenere un valore di sessione. Diversamente la tua applicazione (in via teorica) potrebbe attaccata passando un valore arbitrario alla variabile.
 
ciao
ok, provo a togliere la @.

però il problema rimane in quanto la sessione esiste sino a che non chiudo il bw e quindi posso aggirarla
 

Discussioni simili