Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: sicurezza con php

  1. #1

    sicurezza con php

    Avrei una domanda. Vi espongo il mio caso
    premesso che nn ho ancora iniziato ad usare mysql mi stavo divertento un pò con i file di testo...ma sono giunto ad un problema volevo proteggere il file degli user con il codice:
    <include="controllo.php">
    numeuser|pass
    numeuser1|pass1
    eccc....

    ma ho notato che usando il comando fwrite di PHP non potevo mandare a capo il puntatore (le ho provate tutte) ottenedo una riga in qui c'erano tutti gli user e le pass (complicando l'estrazione dei dati)
    in qst modo:
    <include="controllo.php">
    numeuser|pass numeuser1|pass1 eccc.....

    e questo succede solo con i file di estensione *.php mentre con i *.txt tutto funziona ma nn posso proteggere i dati.
    (tra l'altro sul mio localhost apache 2.0.52 e php5 funziona la scrittura sia del txt che del php....credo sia per via dei diversi sistemi operativi io uso Windows mentre ilserve su qui miappogio Unix)
    come posso difendere i dati ed allo stesso tempo estrarli agevolemente?
    Spero di essermi spiegato
    avete degli aiutini?


  2. #2

    Re: sicurezza con php

    Originariamente inviato da €ureka!!!
    Avrei una domanda. Vi espongo il mio caso
    premesso che nn ho ancora iniziato ad usare mysql mi stavo divertento un pò con i file di testo...ma sono giunto ad un problema volevo proteggere il file degli user con il codice:
    <include="controllo.php">
    numeuser|pass
    numeuser1|pass1
    eccc....

    ma ho notato che usando il comando fwrite di PHP non potevo mandare a capo il puntatore (le ho provate tutte) ottenedo una riga in qui c'erano tutti gli user e le pass (complicando l'estrazione dei dati)
    in qst modo:
    <include="controllo.php">
    numeuser|pass numeuser1|pass1 eccc.....

    e questo succede solo con i file di estensione *.php mentre con i *.txt tutto funziona ma nn posso proteggere i dati.
    (tra l'altro sul mio localhost apache 2.0.52 e php5 funziona la scrittura sia del txt che del php....credo sia per via dei diversi sistemi operativi io uso Windows mentre ilserve su qui miappogio Unix)
    come posso difendere i dati ed allo stesso tempo estrarli agevolemente?
    Spero di essermi spiegato
    avete degli aiutini?

    con fwrite mandi "a capo" usando la correta sequenza di escape ("\n", "\r" o "\r\n" a seconda dell'OS) ... comunque non vedo il problema, il "carattere di a capo" è comunque un carattere come tanti altri che ti fa da delimitatore delle coppie, che poi il tuo editor (per convenzione) usi tale carattere per delimitare le righe è solo un accidente.

    se proprio avess difficoltà con gli a capo, la loro visualizzazione in particolare (e suppongo che li voglia usare per avere poi la lettura fatta in modo semplice dalla funzione file() ), usa un carattere a tua scelta per separare le coppie user-passwd.

    questa potrebbe essere una bozza per uno script che permetta di aggiungere utenti (dopo i controlli etc...)
    Codice PHP:
    <?php
    $delim 
    "\n";
    $tmp_dir = (PHP_OS=='Linux') ? '/tmp' 'c:/windows/temp';
    $users = array('pippo'=>'pwd1',
                   
    'pluto'=>'pwd2',
                   
    'topo'=>'prot',
                  );
    $ld fopen("$tmp_dir/pippo.lock"'w');
    flock($ldLOCK_EX);
    $fd fopen(dirname(__FILE__).'/controllo.php''ba+');
    foreach (
    $users as $u => $p) {
        
    fwrite($fd"\$u['$u']=$p;$delim");
    }
    fclose($fd);
    flock($ldLOCK_UN);
    fclose($ld);
    ?>
    per usarlo, autenticare l'utente quindi, ti basta includerlo e fare un check diretto:
    Codice PHP:
    function chk_user($user) {
        require 
    dirname(__FILE__).'/controllo.php';
        return (
    $user==$u[$user]);

    più o meno :-)
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  3. #3

    grazie drAlbert

    Grazie!!
    con il comando fwrite avevo provato "\r", "\n", "\t", ma non avevo provato (non lo avevo mai visto)
    "\r\n" e con quest'ultimo manda a capo......chissà oer quale assurda ragione, continuo ad attribuire la colpa al sistema operativo
    volevo rimarcare il fatto che fwrite mi funziona alla perfezione con i file con estensione .txt mentre con i file con estensione .php mi dava qst inconveniente che fortunatamente è stato risolto con "\r\n"

    Albert diceva:
    con fwrite mandi "a capo" usando la correta sequenza di escape ("\n", "\r" o "\r\n" a seconda dell'OS) ... comunque non vedo il problema -----> il problema c'era eccome alla lettura del file ad esempio con la funzione file nn avvevo una corretta assegnazione dei campi (qst perche comparivano in riga anziche in colonna) in altrenativa potevo provare ad usare il comando slip() per suddividere la riga ma con l'assegnazione mediante list() nn era possibile avere un numero "illimitato" di user
    del tipo
    list(user1,user2,.....)=slip("\carratereperlasepar azione","utenti.php");

    cmq problema risolto
    thanks

  4. #4
    si, immagbinavo che il prob lo avessi in lettura
    :-)

    comunque "\r\n" è l' "accapo" usato da windows, normalmente se usi questo ti funge anche sugli altri OS..
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  5. #5
    cmq potevi usare explode(); per separare le righe vabbè...

    senti ma fwrite lo usi con che attributi? "w+b"? Io ho dovuto usare questo altrimenti non funzionava correttamente

  6. #6
    ...interessante il comando explode() nn lo conoscevo cmq direi meglio con list() e split(), si possono tenere i file + ordinati.
    Per quanto riguarda fwrite oltre al file di riferimento e la stringa nn c'è nessun'altra opzione credo te ti riferisca a
    fopen bhe dai manuali(copia incolla :-) ):
    "r" Apre in sola lettura; posiziona il puntatore all’inizio del file.
    "r+" Apre in lettura e scrittura; posiziona il puntatore all’inizio del file.
    ’w’ - Apre il file in sola scrittura; posiziona il puntatore all’inizio del file e tronce il file alla
    lunghezza zero. Se il file non esiste, tenta di crearlo.
    ’w+’ - Apre in lettura e scrittura; posiziona il puntatore all’inizio del file e tronce il file alla
    lunghezza zero. Se il file non esiste, tenta di crearlo.
    ’a’ - Apre in sola scrittura; posiziona il puntatore alla fine del file. Se il file non esiste, tenta di
    crearlo.
    ’a+’ - Apre in lettura e scrittura; posiziona il puntatore alla fine del file. Se il file non esiste, tenta
    di crearlo.

    ciauz

  7. #7
    b == binary mode !!! su windows serve su unix è ignorato, ergo è buona norma usarlo sempre

    il codice che ho pastato io evita di manipolare del tutto il file, ne split, ne explode (che sono trall'altro praticamente la stessa cosa in questo contesto) ... un semplice require

    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  8. #8
    il codice di qui parlavo io necessita di una manipolazione dei dati in quanto era più un login che altro, infatti il comando fwrite() serviva per registrare un utente per poi pottere effettuare un controllo all'accesso nelle pagine protette
    con databse un .txt


  9. #9
    infatti lo stralcio che ti ho postato serve proprio a uno scopo simile, sicuro di aver capito cosa ti suggerivo ?
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  10. #10
    scusa ma nel tuo codice così a a primo vista sembrerebbe che l'array user sia statico mentre nel mio riceve form da altre pagine con dati che vanno reinseriti nel database degli user
    per consentire l'acceso a nuovi user registrati

    cmq tutto funziona alla grande dopo la scoperta del "\r\n"!!


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.