proteggere dati con password sicura

  • Creatore Discussione Creatore Discussione asevenx
  • Data di inizio Data di inizio

asevenx

Utente Attivo
7 Nov 2009
312
0
16
salve, dovrei proteggere alcuni dati sensibili con una password che sia il più sicura possibile. Al momento pensavo di creare uno script php che permette l'accesso solo con l'inserimento di una password che risiede in un database locale. Secondo voi può andar bene come protezione? Avete qualche consiglio? grazie
 
Cioè pensavo di creare un modulo dove digitare la password. A questo modulo collego una quary e un ciclo per leggere e verificare la password digitata del tipo:
PHP:
$cerca_password = isset($_POST['cerca_password ']) ? trim($_POST['cerca_password ']) : '';
$cerca_password = ($cerca_password );

//connessione e invio al DB
$password= mysql_connect($host, $username, $dbpassword) or die("Connessione DB fallita");
mysql_select_db($database, $connessione) or die("Selezione DB fallita");

//visualizza tutti i record nel DB
$query = "SELECT * FROM $tabella WHERE password = '$cerca_password '";
$result = mysql_query($query, $connessione) or die('Errore...');

while($resrow = mysql_fetch_row($result)){
$password= $resrow[0];

if($cerca_password== $password){

//accesso a tutti i dati

}else{
echo"password errata"
}

ora l'ho scritta al volo tanto per fare un esempio, potrei aver commesso qualche errore nel definire le variabili o cose del genere, ma la struttura che pensavo di utilizzare è grosso modo questa, secondo voi è sicura?

sennò utilizzando questo ciclo:
PHP:
$records=array(  array('password'=>'passwordadmin'), );
 if(isset($_POST['action'])) { $check=false;
foreach($records as $v) { $pass= $v['password'];
if($pass==$_POST['password']) { $check=true;
}else { $check=false;
dove al posto della variabile passwordadmin inserisco una variabile direttamente collegata al database. Voi che ne dite?

Al massimo mettine 2 o studiati un po di cripting
dove trovo una guida per il cripting? grazie
 
Un piccolo sistema di login puoi costruirlo così. Crea una pagina index.php contenente:
PHP:
<?php
session_start();

if (isset($_SESSION['username'])) {
    header('Location: welcome.php');
    exit();
}

if (isset($_POST['submit'])) {
    $users = array(
        'admin' => 'admin',
        // ...
    );

    $username = isset($_POST['username']) ? trim($_POST['username']) : '';
    $password = isset($_POST['password']) ? trim($_POST['password']) : '';

    if ($username == '' || $password == '') {
        header("Location: {$_SERVER['PHP_SELF']}?err=1");
        exit();
    }

    if (!isset($users[$username])) {
        header("Location: {$_SERVER['PHP_SELF']}?err=2");
        exit();
    }

    if ($users[$username] != $password) {
        header("Location: {$_SERVER['PHP_SELF']}?err=2");
        exit();
    }

    $_SESSION['username'] = $username;
    header('Location: welcome.php');
}
else {
    $error_code = isset($_GET['err']) ? $_GET['err'] : 0;

    switch ($error_code) {
        case 1:
            $error_text = 'Non hai compilato tutti i campi richiesti.';
            break;

        case 2:
            $error_text = 'Combinazione username/password errata.';
            break;

        default:
            $error_text = '';
    }

    $error_text = "<p style=\"color: red;\">{$error_text}</p>";

    echo <<<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>Login</title>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    </head>

    <body>
        <h1>Login</h1>
        {$error_text}
        <form method="post" action="{$_SERVER['PHP_SELF']}">
            <table cellspacing="10">
                <tr>
                    <td><label>Username:</label></td>
                    <td><input type="text" name="username" /></td>
                </tr>

                <tr>
                    <td><label>Password:</label></td>
                    <td><input type="password" name="password" /></td>
                </tr>

                <tr>
                    <td>&nbsp;</td>
                    <td><input type="submit" name="submit" value="Login &raquo;" /></td>
                </tr>
            </table>
        </form>
    </body>
</html>
EOF;
}
?>
Quindi una pagina welcome.php contenente:
PHP:
<?php
session_start();

if (!isset($_SESSION['username'])) {
    header('Location: index.php');
    exit();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>Benvenuto <?php echo $_SESSION['username']; ?>!</title>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    </head>

    <body>
        <h1>Benvenuto <?php echo $_SESSION['username']; ?>!</h1>
        <p>Benvenuto <strong><?php echo $_SESSION['username']; ?></strong>! <a href="logout.php">Logout</a></p>
    </body>
</html>
E infine una pagina logout.php contenente:
PHP:
<?php
session_start();

if (isset($_SESSION['username'])) {
    unset($_SESSION['username']);
}

header('Location: index.php');
?>
Se vuoi creare una nuova pagina accessibile agli utenti loggati metti all'inizio questo:
PHP:
<?php
session_start();

if (!isset($_SESSION['username'])) {
    header('Location: index.php');
    exit();
}
?>
Se invece la pagina deve essere accessibile solo ai visitatori (come nel caso del login) metti all'inizio questo:
PHP:
<?php
session_start();

if (isset($_SESSION['username'])) {
    header('Location: index.php');
    exit();
}
?>
Testato e funzionante.
 
PHP:
if (isset($_POST['submit'])) {
    $users = array(
        'admin' => 'admin',
        // ...
    );
Ma è sicuro rendere visibili password e username? non c'è rischio che vengano lette da qualcuno che possa accedervi. Devo inserire codici bancari e quant'altro in queste pagine, vorrei essere sicuro della sicurezza. grazie
 
Di quello che passa per il Web nulla è sicuro al 100%, ma siamo sempre ad un livello superiore di un qualsiasi bamcomat
 
Eheh

Ha ragione Eli, ovviamente sl web niente è sicuro. Figurati ke tempo fa han bucato il sito delle poste degli hack italiani scrivendo ke non era sicuro. Potevano anche azzerare o aumentare dei conti ki lo sa!?
Cmq se il Server è buono, il tuo codice php è al sicuro.
La passw falle sempre passare come POST

Solitamente si fa una cosa simile a ql ke hai fatto tu:
PHP:
$username = $_POST['username']);
$password = $_POST['password ']);

$query = "SELECT id FROM utenti WHERE username="$username" AND password = '$password '";
$result = mysql_query($query, $connessione) or die('Errore...');

if(mysql_num_rows($result)){
    $_SESSION['id']= true; // O magari l'id dell'utente
}
else{
echo"password errata"
}
 
Ultima modifica:

Discussioni simili