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
 

webfra01

Utente Attivo
14 Mag 2018
27
0
1
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...
 

zorro

Utente Attivo
20 Ott 2014
255
11
18
ROMA
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.
 

webfra01

Utente Attivo
14 Mag 2018
27
0
1
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
 

zorro

Utente Attivo
20 Ott 2014
255
11
18
ROMA
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
 

webfra01

Utente Attivo
14 Mag 2018
27
0
1
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
 

zorro

Utente Attivo
20 Ott 2014
255
11
18
ROMA
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

webfra01

Utente Attivo
14 Mag 2018
27
0
1
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
 

zorro

Utente Attivo
20 Ott 2014
255
11
18
ROMA
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
Autore Titolo Forum Risposte Data
gandalf1959 [PHP] Verifica password per accesso ad area riservata PHP 3
M [WordPress] [HTML] AREA RISERVATA CON PROFILAZIONE WordPress 2
F [PHP] Creare un'area web riservata PHP 13
I Area riservata in PHP PHP 2
I [PHP] CURL per accesso ad area riservata PHP 6
W. YouneS Area riservata con php e mysql PHP 0
W [ASP] Password Login per area riservata Classic ASP 13
Recover Area riservata con database PHP 11
gandalf1959 problema con header in area riservata PHP 4
A area riservata in php senza data base PHP 19
Recover db in sola lettura su area riservata WordPress 1
L Accesso area riservata tramite QR code WordPress 3
A accesso area riservata nn funziona più PHP 1
A Area riservata con login e mysql ma nn mi logga PHP 1
E consigli per piccola area riservata PHP 4
Elisacau Area riservata.. WordPress 2
I Area riservata con contenuto personalizzato per i registrati? Content Management System (CMS) 0
B Area Riservata/Download per Wordpress WordPress 3
M Problema con form per accesso area riservata ai soci PHP 2
A problema con area riservata PHP 6
N Primo accesso area riservata PHP 1
neo996sps PHP + MYSQL: Errore su accesso area riservata PHP 1
P Area riservata con frontpage PHP 10
S Area riservata PHP PHP 3
F Area Riservata PHP+MySql - Chi mi corregge il codice??? PHP 18
S area riservata con mysql PHP 29
S Area riservata con login e mysql PHP 20
J Creare file html da un form in area riservata PHP 9
G Problema area riservata con IE PHP 6
B Aumentare livello di sicurezza accesso client area riservata Classic ASP 5
M Come creare un area riservata PHP 4
N impedire accesso area riservata a utenti registrati Database 3
D Creare Area RiservaTA PHP 8
A Area Riservata Manager - HELP !! PHP 2
R HTTP_REFERER e area riservata.. PHP 1
R Problema con area riservata... PHP 4
X Area Riservata Mysql+php PHP 13
SolidSnake4 area riservata PHP 20
borgo italia Accesso area riservata PHP 6
A area riservata asp Classic ASP 20
B creare un'area riservata PHP 1
N Area riservata proprio sito PHP 18
S Area Riservata Classic ASP 6
W Help - area riservata Classic ASP 3
G area riservata con phpbb3 phpBB 1
I accesso area riservata multilivello PHP 1
W come si crea un area riservata HTML e CSS 5
D A ciascuno la prorioa area riservata PHP 0
K Area riservata - Limitazione tentativi inserimento PHP 0
K logout area riservata Classic ASP 1

Discussioni simili