Area riservata sicura PHP MySQL

webfra01

Utente Attivo
14 Mag 2018
27
0
1
Ciao a tutti sono nuovo del forum e vorrei chiedervi un aiuto per un progetto che vorrei realizzare.

La mia idea e quella di progettare un area riservata accessibile solo da me da dove posso svolgere alcune funzioni cone ad esempio scrivere un post nel mio blog. Per quanto riguarda la realizzazione dell'interfaccia grafica non c"è problema, Ma per la paete php sto imparando ora le basi.

Voi avete idea da dove posso partire per realizzare una cosa del genere? Esiste magari già uno script già pronto che posso adattare alle mie esigenze?

Scherma che vorrei realizzare

www.miosito.it/login.php
Una volta loggato rimandi a una pagina magari admin. Quest'ultima ovviamente non raggiungibile se non si è loggati. Ho visto che si può fare con le SESSION ma non me ne intendi molto.

Qualcuno sa aiutarmi ?
Grazie mille a tutti
 
Si vede che bessuno fino ad ora conosce la risposta e comunque nessuno è obbligato a rispondere!
Ho semplicemente commentato in modo che magari qualcuno lo noti senza fare ironia :) lo so bene che nessuno e tenuto a rispondere ma visto che è un forum spero qualcuno lo faccia. Buona giornata anche a lei...
 
Ciao,
quello che intendi fare, se non ho capito male, è abbastanza semplice: in una pagina contenente il form di login imposti una variabile (es $loggato) che imposti a no. Se l'utente inserisce nick e password corrette la variabile $loggato conterrà il valore si; a questo punto lo indirizzerai alla pagina admin in testa alla quale ti chiderai se $loggato contiene il valore si (l'utente si è correttamente loggato) gli permetterai di accedervi, altrimenti no. Passando però dal form alla pagina admin perderai il valore di $loggato, che dovrai salvare in una opportuna variabile di sessione, e che richiamerai all'inizio della pagina admin.
 
Ciao,
quello che intendi fare, se non ho capito male, è abbastanza semplice: in una pagina contenente il form di login imposti una variabile (es $loggato) che imposti a no. Se l'utente inserisce nick e password corrette la variabile $loggato conterrà il valore si; a questo punto lo indirizzerai alla pagina admin in testa alla quale ti chiderai se $loggato contiene il valore si (l'utente si è correttamente loggato) gli permetterai di accedervi, altrimenti no. Passando però dal form alla pagina admin perderai il valore di $loggato, che dovrai salvare in una opportuna variabile di sessione, e che richiamerai all'inizio della pagina admin.
Perfetto, esiste già un esempio fatto cosi da poterlo seguire? Quello che mi preme di più è la sicurezza.

Ho letto che bisogna salvare la pass nel database crittografata.
Impedire attacchi brutalforce, l'imitare l'immissione dei dati a solo testo.

Grazie mille per la risposta
 
Non so se in rete c'è un esempio di form di login (sicuramente ci sarà) ma io non sono troppo amante delle cose già pronte: ti posso fare un esempio di form. Per quanto riguarda la password esiste una funzione (hash se non ricordo male) che permette di criptare una stringa, ma poi non puoi più decriptarla quindi, in caswo di smarrimento, devi cambiare tutta la password
 
Non so se in rete c'è un esempio di form di login (sicuramente ci sarà) ma io non sono troppo amante delle cose già pronte: ti posso fare un esempio di form. Per quanto riguarda la password esiste una funzione (hash se non ricordo male) che permette di criptare una stringa, ma poi non puoi più decriptarla quindi, in caswo di smarrimento, devi cambiare tutta la password
Neanche io voglio usare scropt già pronti ma siccome ho iniziato da poco a studiare php non so bene come procedere per creare un sistema del genere.

Se puoi farmi un esempio sarebbe perfetto.

Per la password criptata vs bene tanto la registro nel database dove ho accesso in caso me la dimentichi la riempito da la.
Grazie ancora per l'aiuto
 
Ciao webfra,
scusa mi son preso qualche giorno anche perché ho trovato dei problemi, ma provalo anche tu.
Il tutto si compone di 4 pagine .PHP (anche il form ho preferito convertirlo in PHP)
La prima INDEX.PHP (la prima da eseguire):

PHP:
<?php
session_start();
$_SESSION['user'] = '';
$_SESSION['pass'] = '';
$_SESSION['loggato'] = 'no';
$_SESSION['msg'] = '';

include('form.php');
?>

....quindi form.php

Codice:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
body {
    font-family:Verdana;
}
#corn {
    width:250px;
    height:250px;
    background-color:#C0C0C0;
    border-radius:10px;
    padding-top:50px;
    padding-left:30px;
    margin-top:100px;
    margin-left:300PX;
}
#areamsg {
    color:red;
}
</style>
</head>

<body>
<?php
session_start();
$msg = $_SESSION['msg'];
?>
<div id="corn">
   <form method="post" action="
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
body {
   font-family:Verdana;
}
#corn {
   width:250px;
    height:250px;
    background-color:#C0C0C0;
    border-radius:10px;
    padding-top:50px;
    padding-left:30px;
    margin-top:100px;
    margin-left:300PX;
}
#areamsg {
    color:red;
}
</style>
</head>

<body>
<?php
session_start();
$msg = $_SESSION['msg'];
?>
<div id="corn">
   <form method="get" action="contr.php">
   <table border="0" width="400">
       <tr>
           <td height="60"><h2><b>LOGIN</b></h2></td>
       </tr>
       <tr>
           <td>user:</td>
       </tr>
       <tr>
           <td><input type="text" name="nome"></td>
       </tr>
      <tr>
           <td>password:</td>
       </tr>
       <tr>
           <td><input type="password" name="pass"></td>
       </tr>
       <tr>
           <td height="55"><input type="submit" name="invia" value="Invia i dati"></td>
       </tr>
       <tr>
           <td height="100">
               <div id="areamsg">
                   <?php echo $_SESSION['msg'] ?>
               </div>
           </td>
       </tr>
   </table>
   </form>
</div>

</body>
</html>
">
   <table border="0" width="400">
       <tr>
           <td height="60"><h2><b>LOGIN</b></h2></td>
       </tr>
       <tr>
           <td>user:</td>
       </tr>
       <tr>
           <td><input type="text" name="nome"></td>
       </tr>
      <tr>
           <td>password:</td>
       </tr>
       <tr>
           <td><input type="password" name="pass"></td>
       </tr>
       <tr>
           <td height="55"><input type="submit" name="invia" value="Invia i dati"></td>
       </tr>
       <tr>
           <td height="100">
               <div id="areamsg">
                    <?php echo $_SESSION['msg'] ?>
               </div>
           </td>
       </tr>
   </table>
   </form>
</div>

</body>
</html>

ho usato una tabella per allineare i campi.
contr.php che controlla il form

PHP:
<?php
$user = $_POST['nome'];
$pass = $_POST['pass'];

if ($user == 'pippo' and $pass == 'pluto') {
    session_start();
    $_SESSION['loggato'] = 'si';
   
    include('admin.php');
}

?>

come vedi le parole per loggarti sono pippo (user) e pluto (pass).
Infine ho inserito admin.php che presenta un semplice messaggio in caso l'utente si sia correttamente loggato

PHP:
<?php
session_start();
$loggato = $_SESSION['loggato'];

if ($loggato == 'si') {
    echo 'Perfetto!! Sei correttamente loggato';
} else {
    $_SESSION['msg'] = 'Spiacente. Devi prima loggarti.';
    include('form.php');
}
?>

Provalo anche tu e fammi sapere. Spero di esseti stato d'aiuto. Ciao


Zorro
 
  • Like
Reactions: webfra01
Ciao webfra,
scusa mi son preso qualche giorno anche perché ho trovato dei problemi, ma provalo anche tu.
Il tutto si compone di 4 pagine .PHP (anche il form ho preferito convertirlo in PHP)
La prima INDEX.PHP (la prima da eseguire):

PHP:
<?php
session_start();
$_SESSION['user'] = '';
$_SESSION['pass'] = '';
$_SESSION['loggato'] = 'no';
$_SESSION['msg'] = '';

include('form.php');
?>

....quindi form.php

Codice:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
body {
    font-family:Verdana;
}
#corn {
    width:250px;
    height:250px;
    background-color:#C0C0C0;
    border-radius:10px;
    padding-top:50px;
    padding-left:30px;
    margin-top:100px;
    margin-left:300PX;
}
#areamsg {
    color:red;
}
</style>
</head>

<body>
<?php
session_start();
$msg = $_SESSION['msg'];
?>
<div id="corn">
   <form method="post" action="
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
body {
   font-family:Verdana;
}
#corn {
   width:250px;
    height:250px;
    background-color:#C0C0C0;
    border-radius:10px;
    padding-top:50px;
    padding-left:30px;
    margin-top:100px;
    margin-left:300PX;
}
#areamsg {
    color:red;
}
</style>
</head>

<body>
<?php
session_start();
$msg = $_SESSION['msg'];
?>
<div id="corn">
   <form method="get" action="contr.php">
   <table border="0" width="400">
       <tr>
           <td height="60"><h2><b>LOGIN</b></h2></td>
       </tr>
       <tr>
           <td>user:</td>
       </tr>
       <tr>
           <td><input type="text" name="nome"></td>
       </tr>
      <tr>
           <td>password:</td>
       </tr>
       <tr>
           <td><input type="password" name="pass"></td>
       </tr>
       <tr>
           <td height="55"><input type="submit" name="invia" value="Invia i dati"></td>
       </tr>
       <tr>
           <td height="100">
               <div id="areamsg">
                   <?php echo $_SESSION['msg'] ?>
               </div>
           </td>
       </tr>
   </table>
   </form>
</div>

</body>
</html>
">
   <table border="0" width="400">
       <tr>
           <td height="60"><h2><b>LOGIN</b></h2></td>
       </tr>
       <tr>
           <td>user:</td>
       </tr>
       <tr>
           <td><input type="text" name="nome"></td>
       </tr>
      <tr>
           <td>password:</td>
       </tr>
       <tr>
           <td><input type="password" name="pass"></td>
       </tr>
       <tr>
           <td height="55"><input type="submit" name="invia" value="Invia i dati"></td>
       </tr>
       <tr>
           <td height="100">
               <div id="areamsg">
                    <?php echo $_SESSION['msg'] ?>
               </div>
           </td>
       </tr>
   </table>
   </form>
</div>

</body>
</html>

ho usato una tabella per allineare i campi.
contr.php che controlla il form

PHP:
<?php
$user = $_POST['nome'];
$pass = $_POST['pass'];

if ($user == 'pippo' and $pass == 'pluto') {
    session_start();
    $_SESSION['loggato'] = 'si';
   
    include('admin.php');
}

?>

come vedi le parole per loggarti sono pippo (user) e pluto (pass).
Infine ho inserito admin.php che presenta un semplice messaggio in caso l'utente si sia correttamente loggato

PHP:
<?php
session_start();
$loggato = $_SESSION['loggato'];

if ($loggato == 'si') {
    echo 'Perfetto!! Sei correttamente loggato';
} else {
    $_SESSION['msg'] = 'Spiacente. Devi prima loggarti.';
    include('form.php');
}
?>

Provalo anche tu e fammi sapere. Spero di esseti stato d'aiuto. Ciao


Zorro
Non avevo visto la risposta
Vedo che non interagisce con il database. Questo quanto è sicuro lo stesso?
E in generale questo script e abbastanza sicuro?

Ora ho dei problemi col pc ma appena lo sistemo lo provo sicuramente.
Grazie ancora
 
Il tuo link non funziona, quindi non ho potuto vedere il tuo schema. Lo script, una volta loggato, rimanda alla pagina admin dove, nel mio caso, visualizza un messaggio; tu, ovvimente, inserirai le operazioni che intendi fare tu una volta loggato
 

Discussioni simili