php - codice per proteggere le pagine

givabres

Nuovo Utente
6 Apr 2009
5
0
0
Salve a tutti...
Mi chiamo Isidoro e scrivo da Palermo...
ho un piccolo problema.
Ho creato una piccola autenticazione con php. In questa pagina non c'è uno username e l'utente inserisce una password che scelgo e gli fornisco io. Questo sono riuscito a farlo inserendo il seguente codice:
<?php

if($_POST['password'] != "miapassword")
{
header("Location: pagina_errore.html");
die;

}

header("Location: pagina_ok.html");
die;
?>

premetto che sono a conoscenza del fatto che che quanto ho scritto è quanto di meno sicuro esista sulla faccia del web e che so che con un cms o con una cartella .htaccess sarebbe tutto più sicuro. Il fatto è che io di quando scritto sopra non ne so nulla (nemmeno di php sono un esperto e nemmeno ho il tempo di andare ad approfondire...per altro quello che devo fare è una cosa assolutamente provvisoria che non contiene dati riservatissimi e cose importanti.
quello di cui ho bisogno è di un codice da mettere all'interno delle pagine dell'area associati per fare in modo che l'utente che non ha competenze particolari (gli esperti entrerebbero cmq ) non possa entrare in questa area digitando semplicemente l'indirizzo sulla barra del browser...
è possibile inserire un codice su tutte le pagine che voglio proteggere ?

sicuro di una vostra risposta e scusandomi per la lunghezza del messaggio auguro a tutti un buon lavoro...
Isidoro
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao io utilizzo questo metodo (non sicurissimo)
nella pagina in cui l'utente immette la password (i in quella dove c'è il link) per accedere come prima istruzione inserisco

PHP:
<?php
if(!isset($_SESSION)){
session_start ();
}
$_SESSION['codice']="pinco pallo";
?>
cioè se passo per la pagina creo la sessione e gli do un valore
nella pagina riservata

PHP:
<?php
if(!isset($_SESSION)){
session_start();
}
@$code = $_SESSION['verifica01'];
if($code != "pinco pallo" || $code=="" ){
header("Location: http://www.nio_sito.com/index.php");
}
?>

per cui se qualcuno entra direttamente tramite url della pagina riservata, senza passare dalla pagina regolare di accesso, la sessione non assume il valore "pinco pallo" e quindi automaticamente si viene riinviati dove si vuole (io riinvio alla home o index)

p.s.
le duei istruzioni devono essere le prime, ancora prima di

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
ecc....
 

givabres

Nuovo Utente
6 Apr 2009
5
0
0
grazie

intanto ti vorrei ringraziare di cuore per la celerità della risposta...
io non ho capito dove devo porre i due codiciu che mi hai fornito...
se nel file .php o se nel file html...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
entrambi i file devono essere php
l'istruzione in cui setti $_session, nel file in cui hai il form per inserire la password
quelle in cui verifichi $_session, in tutte (o la prima) delle pagine riservate

non puoi inserire codice php in una pagina con estensione .htm o .html e ti ricordo che per trasformare una pagina htm/html in una php, che accetta ed elabora l'eventuale codice, basta che tu cambi l'estensione (con esplora risorse) in .php
 

givabres

Nuovo Utente
6 Apr 2009
5
0
0
grazie tante....ma non mi funziona

Ciao...
e grazie per la pazienza...
purtroppo non mi funziona....
ti dico quello che ho fatto...
ho una pagina chiamata "autenticazione.php" dove ho inserito il seguente codice:

PHP:
<?php
if(!isset($_SESSION)){
session_start ();
}
$_SESSION['codice']="pinco pallo";
?> 
<html>
<head>
<title>Esempio login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body">
<form name="form1" method="POST" action="controllopsw.php">
  <table border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td>Password: </td>
      <td><input name="password" type="password" id="password"></td>
    </tr>
    <tr>
      <td colspan="2"><input name="Submit" type="submit" value="Entra"></td>
    </tr>
  </table>
</form>
</body>
</html>
poi ho creato una pagina controllopsw.php


PHP:
<?php

if($_POST['password'] != "isidoro")
{
    header("Location: pagina_errore_login.php");
    die;
	
}

header("Location: scegli_lingua.php");
die;
?>

poi ho creato ovviamente la pagina scegli_lingua.php con il codice che mi hai dato tu, ma non mi funziona lo stesso...
PHP:
<?php
if(!isset($_SESSION)){
session_start();
}
@$code = $_SESSION['verifica01'];
if($code != "pinco pallo" || $code=="" ){
header("Location: http://www.google.it");
}
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento senza titolo</title>
</head>

<body>
<p>italiano</p>
<p>inglese</p>
<p>francese</p>
<p>spagnolo</p>
<p>&nbsp; </p>
</body>

</html>

dove sto sbagliando?
praticamente inserendo la password corretta mi reinvia a www.google.it non a scegli_lingua.php.
grazie...
isidoro
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
scusa, ma ho fatto un errore :dipser:utilizzando copia/incolla da un mio script

errato
@$code = $_SESSION['verifica01'];


correzione
@$code = $_SESSION['codice'];

il nome $SESSION da verificare deve essere lo stesso di quella settata
 

givabres

Nuovo Utente
6 Apr 2009
5
0
0
ok mi funziona...

non so come ringraziarti...
sei stato preziosissimo
grazie di cuore...
isidoro
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
allora tutto ok
lascia a te lo scoprire quale è il "buco" di tale script (come ti avevevo detto non è sicuro al 100x100)
alla prossima
 

CarloG

Nuovo Utente
27 Mar 2009
2
0
0
ciao,
quale/i altro sistema proponi piu' sicuro?
grazie anticipate, ciao
Carlo
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi spiace, ma non sono molto esperto, per ora è l'unico metodo che sono riuscito a fare, se scopro qualcos'altro di più sicuro lo posto
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
forse ho trovato un metodo più sicuro.
1. nella pagina da cui è possibile accedere alla pagina riservata inserire sempre al primo posto

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


ed al posto del classisco link tipo <a fref....>admin</a> un piccolo form come questo

HTML:
<body>
<form action="riservata.php" method="post">
<input name="costanteN" type="hidden" value="2">
<input name="admin" type="submit" id="admin" value="admin">
</form>
</body>
il maleintenzionato che richiama la pagina e visualizza il codice con visualizza html (ie) o sorgente pagina (ff) non vede comunque la parte php
e (credo) comunque non sappia come inviare il valore del campo nascosto (tramite css o altro si può rendere il pulsante di subimit più bello)

2. nella pagina riservata.php sempre al primo posto inserere queste righe di codice

PHP:
<?php
if(!isset($_SESSION)){
session_start();
}
@$code = (int)$_SESSION['verifica01'];
@$costante=(int)$_POST['costanteN'];
if($costante==""){$costante=0;}
$code=$code*$costante;
if($code != 1854){
header("Location: http://localhost:8080/corso/provaRiservata/accesso.php");
}
?>
questo è il metodo che (da autodidatta) ho pensato di adottare e lo ritengo un poco più sicuro di quello proposto prima.
si evita il "bag" a cui avevo accennato

p.s.
i valori dell input nascosti e della session possono essere variati a piacere, l'importatnte e calcolare giusta la moltiplicazione (che tra l'altro può essere sostituita da una somma o sottrazione, megglio divisione no)
 
Discussioni simili
Autore Titolo Forum Risposte Data
G [PHP] Revisione codice per registrazione PHP 8
D [PHP] [RETRIBUITO] cercasi esperto programmatore per realizzare applicazione in html e codice iframe PHP 0
B PHP e JQUERY per scrivere codice html dinamicamente PHP 2
romeocharly Creare un script/codice in php per collegare un id mysql con un file PHP 0
G Aiuto! Studente cerca aiuto per un codice PHP PHP 1
P Codice PHP per discriminare apertura link... PHP 2
T codice per protocollo smtp in php? PHP 10
D Joomla: Codice php per visualizzare solo prime righe di un articolo da DB Joomla 4
F idee..codice php per videogallery da database PHP 4
A Impostare tabelle per forum e codice php PHP 6
Z errore codice php per forum vbulletin PHP 0
R codice php per accedere a files protetti .htaccess PHP 2
L problemi codice php per il login PHP 8
A codice php per testo PHP 0
JeiMax Modifica codice php personalizzato PHP 2
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
F Il codice php è giusto? PHP 2
E Barra di avanzamento codice PHP PHP 4
M [PHP] Istruzione "echo" all'interno di codice html PHP 2
C Refresh parte di codice pagina php PHP 6
Shyson [PHP] Aggiungere link al codice PHP 0
A come spedire SMS da codice PHP con mdem USB PHP 0
M [PHP] Come inserire codice html in un ciclo while PHP 2
Shyson [PHP] Codice iscrizione e invio avviso nuovi articoli PHP 3
L [PHP] Problema su codice o server PHP 5
Shyson [PHP] Inserire testo nel codice PHP 2
Shyson [PHP] Nascondere codice PHP 3
H cancellare avatar in codice PHP PHP 2
Shyson [WordPress] [PHP] Creare codice che evidenzia nuovi articoli WordPress 0
M [PHP] Codice fiscale inverso PHP 3
J Prendere dati del database e metterli nel codice php PHP 1
S [PHP] Verifica dati tramite form e annullamento codice inserito PHP 7
Y [PHP] Errore di login dopo aver inserito Codice AdSense PHP 0
Y Codice AdSense su script php PHP 4
Q Notice: Undefined index: codice in C:\xampp\htdocs\STAGE\calendario\modifica.php on line 10 PHP 8
M [css][php] codice php esterno non vede il css PHP 6
giancadeejay Codice php come testo-quale tag usare? PHP 9
Shyson [HTML] Spostare a sinistra codice php PHP 6
crealatualista [PHP] layout pagina con immagine codice a barre PHP 3
X come aggiornare codice php? PHP 5
bubino8 [PHP] appendChild contenente codice PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15
gandalf1959 [PHP] codice infetto? PHP 2
trattorino [PHP] blocco codice su una piattaforma PHP 3
trattorino [PHP] aggiungere html in un codice PHP 0
G Google recaptcha in verify.php - dove inserire il codice PHP 1
crealatualista Scrivere in un file php aperto dal codice php! PHP 7
E [PHP] [HTML] Codice che gestisce l'input e la trasmissione dei dati alla mia email PHP 1
E Importare codice html da una pagina tramite php PHP 9
Gaetano1991h [PHP] Chi mi sa spiegare la funzione di questo codice? PHP 1

Discussioni simili