Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [freephp] login e loguot - Cerco consigli x migliorare il sistema di login!!

    Ciao ragazzi,
    ho scaricato su freephp lo script per il login che a mio modesto parere è molto completo, facile per chi come me è alle prime armi e soprattutto molto semplice da installare e far funzionare.
    Lo script in questione è questo:

    Clicca qua

    Tuttavia ho notato che il metodo per gestire la protezione delle pagine private non è molto comodo. Infatti lo script, per gestire e quindi proteggere la pagina privata da utenti non loggati al sistema, usa il seguente codice:

    codice:
    <?php
    include_once("include/config.php");
    include_once("include/auth.lib.php");
    
    list($status, $user) = auth_get_status();
    
    if($status == AUTH_LOGGED){
    	$msg = 'Contenuto della pagina';
    }else	$msg = 'Non hai i diritti per visualizzare la pagina';
    ?>
    <html>
    	<head>
    		<title>Pagina tre</title>
    	</head>
    	<body>
    	<font color="red" size="5"><?=$msg;?></font>
    	</body>
    </html>
    Io credo che questo sistema di protezione vadi bene per pagine con poca grafica o comunque con pochissimo codice. Infatti, se la pagina presenta molto codice e quindi presenta della grafica, dei css, ecc (come la maggioranza delle pagine web) allora la cosa diventa molto complicata, ma soprattutto proteggere una pagina privata diventa davvero molto ma molto scomodo.

    Allora mi chiedevo se esiste un metodo alternativo e più conveniente per proteggere le pagine private e comunque utilizzare questo script che, ripeto, ritengo davvero molto utile. Io personalmente credo che un metodo altrenativo e più efficace esiste sicuramente e quindi vorrei chiedere se qualcuno è così gentile da indicarlo e spiegarlo dettagliatamente in modo che anche noi neofiti possiamo utilizzare un sistema di login valido e allo stesso tempo capire cosa stiamo facendo. Tra l'altro credo che questo mio problema riguardi molte persone che come me hanno la necessità di creare un sistema di login ma sono alle prime armi con il php.

    Grazie in anticipo a tutti coloro che risponderanno.

    Ciao Ciao

  2. #2
    Codice PHP:
    <?php
    session_start
    ();
    if (
    $verified_user == ''header("Location: ");
    session_register("verified_user");
    ?>
    metti in testa ad ogni pagina!!

    t posto anke il mio codice di login..comprensivo di sistemi di protezione come la criptazione o il ban!

    LOGIN1.php
    Codice PHP:
    <?php
    session_start
    ();
    dbconnect();
    $_POST['nick'] = stripslashes($_POST['nick']);
    $_POST['nick'] = mysql_escape_string($_POST['nick']);
    $_POST['psw'] = stripslashes($_POST['psw']);
    $_POST['psw'] = mysql_escape_string($_POST['psw']);
    $_POST['nick'] = mysql_real_escape_string($_POST['nick']);
    $_POST['psw'] = mysql_real_escape_string($_POST['psw']);
    function 
    str_crypt($data$key)
    {
      if(
    strlen($key)<32$key md5($key);
      
    $ld  strlen($data);
      
    $lk  strlen($key);
      for(
    $i=0$crdata=""$i<$ld$i++){
        
    $crdata .= sprintf("%02X",(ord($data[$i]))^(ord($key[$i%$lk])));
      }
      return 
    $crdata;
    }
    $_POST['psw'] = str_crypt($_POST['psw'], parola_scelta_da_te);
    if (!isset(
    $verified_user)) $verified_user='';
    if (
    $action=='login') {
    //la tabella nn la kiamaresolo login,ma aggiungici altre lettere vicino come io ho fatto mettendo zzq,così diventa impossibile per gli hacker indovinare il nome
        
    $result=mysql_query("SELECT *_ FROM loginzzq WHERE Nick='$_POST[nick]' AND Pass='$_POST[psw]'");
               if (
    mysql_num_rows($result)==1) list($verified_user)=mysql_fetch_row($result);
        else 
    $verified_user='';
    }
    session_register("verified_user");
    setcookie("user_id"$nick0$cookie_path$cookie_host);

    $banned file('banned.txt');
    if (!
    in_array($ip$banned)) {
    if (
    $verified_user != '') {
     
    include(
    'login2.php');
    } elseif (
    $action == "login" && $verified_user == '') {
            include(
    'errore_login.php');
        } } else { echo
    "SEI STATO BANNATO!!"; } 

    function 
    dbconnect() { 
    mysql_connect("localhost""manuel""password"); 
    @
    mysql_select_db("nomedatabase_com") or die ("Unable to select database"); 
    }
    LOGIN2.php
    Codice PHP:
    <?php
    $db 
    mysql_connect("localhost""manuel""pass"); if ($db == FALSE) die ("Errore nella connessione. Verificare i parametri nel file config.inc.php"); 
    mysql_select_db("nomedatabase_com"$db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query "SELECT *,UNIX_TIMESTAMP(Data) AS Data FROM loginzzq WHERE Nick='$nick'"$result mysql_query($query$db); 
    $row mysql_fetch_array($result); 


    if(
    $row['Nick'] != '') {
    if(
    Time() <= $row['Data']) 
    {  include(
    'espulso.php');  }
    else
     {  include(
    'home.php'); } 
    } else { echo
    "<center>[b]Inserisci nick e password[/b]</center>"; }
    ?>

    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  3. #3
    Grazie per la tua risposta e grazie per i codice che mi hai postato!!!!
    Grazie 1000!!!!

    Mi spieghi una cosa??? A cosa servono le pagine: login1.php e Login2.php??

    Ma non devo fare nessuna connessione al DB?? La tabella Utenti... che campi deve avere per poter far funzionare lo script??

    grazie e ciao

  4. #4
    Anche io mi sono studiato quelle lezioni di freephp sui login-logout e mi pare che gli script proposti siano inutilmente complicati. Addirittura l'autore per non usare sessioni o cookie (che ritiene non sicuri) crea un'emulazione delle sessioni sul DB generando, secondo me, un traffico di query esagerato se il sito ha un certo numero di utenti. In più fa un sacco di chiamate inutili al DB per vedere se una sessione è scaduta e per finire ho notato che non chiude mai la connessione al DB, neanche al logout.
    Forse è un buon metodo per siti con grandi esigenze di sicurezza, ma per un sito normale direi che la soluzione proposta da manuelandro è migliore (anche se ddevo ancora studiarla in dettaglio ).
    Ciao.

  5. #5

    Re: [freephp] login e loguot - Cerco consigli x migliorare il sistema di login!!

    Originariamente inviato da spiadadda
    Io credo che questo sistema di protezione vadi bene
    Mi scusi, è amico del ragionier Fantozzi lei?!?

    Scusate l'OT, mi è scappato...
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  6. #6
    Ciao Manuelandro,
    scusa se rispondo solo adesso ma ho avuto dei problemi!!!
    Come prima cosa volevo ringraziarti per il tuo prezioso aiuto!!!

    Se non ti dispiace volevo chiederti alcune cose sul tuo script e in particolare se mi spieghi, per sommi capi, cosa fanno gli script Login1.php e login2.php.

    Cioè in linea di massima ho capito a cosa servono e come funzionano... ma poichè li trovo molto interessanti credo che capire qualcosa in più non mi farebbe male per la loro corretta installazione.

    Aspetto tue notizie.

    Grazie 1000

    Ciao Ciao

  7. #7
    io ho notato che lo script dell'articolo di cui si parla ha una grave carenza: non aggiorna la data della sessione cosicché scade anche se io continuo a navigare (con la conseguente incapacità di tracciare gli utenti attivi)
    PiKey
    got excited by ubuntu edgy eft
    www.pikkio.net/blog

  8. #8
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    Originariamente inviato da PiKey
    io ho notato che lo script dell'articolo di cui si parla ha una grave carenza: non aggiorna la data della sessione cosicché scade anche se io continuo a navigare (con la conseguente incapacità di tracciare gli utenti attivi)
    cosa bisognerebbe fare per aggiornare la data della sessione e non farla scadere?
    io lo sto usando

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.