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

    [Login/Sessioni] - quesito semplice su files di controllo

    Ciao tutti,
    scusate la domanda davvero vergognosa...

    sto progettando il mio primo sitema di login, che semplificando è così composto:

    1) pagina php con classico form (index.php) che punta ad
    2) un file esterno (check.php) che fa le verifiche di quanto proviene via $_POST:

    - campi login e password non vuoti,
    - assenza di carateri strani <>,/%$£ ,
    - ovviamente accoppiata login e password valida (reperita su MySQL)

    Soddisfatte le condizioni imposto un paio di variabili di sessioni e con un header(...) reindirizzo lo script a index.php...

    I 2 file PHP sono quindi indipendenti fra di loro e il check.php NON viene incluso nell'index.php

    Il quesito è il seguente:

    Nel caso qualche cosa vada storto, dovrei informare l'utente con qualcosa del tipo "username e/password sbagliata" oppure "campo vuoto" ecc...

    Questi controlli sono delegati a check.php, ma volevo che apparissero nella pagina index.php, magari subito sotto al pulsante "invia" del form oppure nel bel mezzo della pagina... solo che non so come trasferire il messaggio da check.php a index.php....
    Avevo pensato di creare una variabile di sessione ad esempio $_SESSION['errore']= ... e poi lasciare che index.php facesse un controllo per la presenza di questo campo, tuttavia mi sembra che la cosa si stia eccessivamente complicando

    Avete qualche idea in merito ??

    Ho visto che in molti tutorial di login si usa includere un file con funzioni di controllo quali quelle sopra descritte nel file primario.
    Io non ho scelto questa strada, ma tuttavia potrei tranquillamente farlo, solo che non sono sicuro di capirne bene l'implementazione e il vantaggio rispetto ad avere - come nel mio caso - due file indipendenti...

    Grazie per qualsiasi spunto e ciao.

    Stefano

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    non c'è nulla di male a salvare un messaggio nella sessione, nel file check setti la variabile e in index la visualizzi. Non stai complicando nulla.
    Ciao

  3. #3
    Originariamente inviato da Razorblade
    Ciao,
    non c'è nulla di male a salvare un messaggio nella sessione, nel file check setti la variabile e in index la visualizzi. Non stai complicando nulla.
    Ciao
    Ciao Razorblade,
    grazie del riscontro.

    A parte tutto ti sembra corretta la procedura ??(messa giù così è generica, lo so).

    Forse includendo il file check.php riuscirei a gestire i controlli un poco meglio: se la procedura di login fallisce, con un bel "return" me ne esco dai controlli e scrivo subito l'errore che è saltato fuori. Che ne dici ?

    col "mio" metodo invece dovrei istruire l'index.php più o meno come segue:

    Codice PHP:
    session_start()  //in alto
    if ($_SESSION['errore'])
    {
    scrivi il tipo di errore;}
    else
    {echo 
    'benvenuto'.S_SESSION['nome_azienda'];
    echo 
    'clicca qui a fianco per uscire dalla sessione'//  <-- pulsante di logout 
    :master: non lo so... non è per paranoia nei confronti di hacker etc, ma ho la sensazione che portarmi a spasso delle variabili di sessione solo per registrare un msg di questo tipo mi possa esporre a qualche vulnerabilità.

    Quindi in pratica se avrò un file di sessione con:
    -> solo var con messaggio, allora il login non ha funzionato e si ritorna alla pagina di login
    -> solo nome dell'azienda (o variabile 'autenticato' = 'si'...) allora faccio procedere l'utente

    Qual'è il tuo pensiero ?

    Grazie molte,
    stefano

  4. #4
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    io direi di separare le cose, crei una variabile di sessione 'messaggio' ( che potrà essere vuota o meno ) e una variabile 'logged' ( o quello che vuoi tu ) di tipo boolean ( vero o falso ), ed hai ottenuto il tuo login semplice.

    Ti consiglio di lavorare in modalità 'strict', con error_reporting a ALL ( cerca error_reporting su php.net per maggiori info ), l'IF come l'hai scritto tu non è correttissimo, sarebbe bene scriverlo tipo

    Codice PHP:
    if (isset($_SESSION['errore']) && $_SESSION['errore']) {
    [...] 
    Per quanto riguarda l'hackeraggio non credo che una variabile di sessione con un messaggio possa fare da porta, in ogni caso cerca dei tutorial in giro riguardo ad argomenti come session fixation ed sql injection per essere sicuro.

    Per firefox se non sbaglio esistono dei plugin per testare la sicurezza dei propri script ( eseguono dei test per sql injection, prova a cercare ).

    Tempo fa scrissi un articolo sulle sessioni sul mio blog, ti lascio il link ci sono alcune cose interessanti , clicca qui

    Ti saluto, fammi poi sapere come procede.

  5. #5
    Originariamente inviato da Razorblade

    Tempo fa scrissi un articolo sulle sessioni sul mio blog, ti lascio il link ci sono alcune cose interessanti , clicca qui

    Ti saluto, fammi poi sapere come procede.

    ci guardo subito.

    a presto... !

    Stefano
    Carino il tuo blog, diversi articoli interessanti e senza fronzoli!

    unico appunto:
    tutto quello che c'è in div #sidebar ( i due menu a dx), è scritto con un carattere molto piccolo e soprattutto troppo chiaro, si fa fatica a leggerlo.. ciaoo

  6. #6
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Grazie,
    te prendo nota.
    A presto

  7. #7
    Originariamente inviato da Razorblade
    Ciao,
    io direi di separare le cose, crei una variabile di sessione 'messaggio' ( che potrà essere vuota o meno ) e una variabile 'logged' ( o quello che vuoi tu ) di tipo boolean ( vero o falso ), ed hai ottenuto il tuo login semplice.

    Ti consiglio di lavorare in modalità 'strict', con error_reporting a ALL ( cerca error_reporting su php.net per maggiori info ), l'IF come l'hai scritto tu non è correttissimo, sarebbe bene scriverlo tipo

    Codice PHP:
    if (isset($_SESSION['errore']) && $_SESSION['errore']) {
    [...] 
    Per quanto riguarda l'hackeraggio non credo che una variabile di sessione con un messaggio possa fare da porta, in ogni caso cerca dei tutorial in giro riguardo ad argomenti come session fixation ed sql injection per essere sicuro.

    Per firefox se non sbaglio esistono dei plugin per testare la sicurezza dei propri script ( eseguono dei test per sql injection, prova a cercare ).

    Tempo fa scrissi un articolo sulle sessioni sul mio blog, ti lascio il link ci sono alcune cose interessanti , clicca qui

    Ti saluto, fammi poi sapere come procede.
    mi interesserebbero le estensioni FF per testare la sicurezza, ti ricordi per caso come si chiama/no?

    ciao

  8. #8
    Originariamente inviato da Razorblade

    Codice PHP:
    if (isset($_SESSION['errore']) && $_SESSION['errore']) {
    [...] 
    Scusa razorblade,
    mi è saltato un quesito in un precedente post:

    come traduco il ciclo if che mi hai indicato ?

    se (è settata $_SESSION['errore'] E ... ???)

    stefano

  9. #9
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao StefanoC,
    innanzitutto IF non è un ciclo, ma un costrutto. FOR, WHILE, DO..WHILE ecc sono cicli, in quanto ciclano.

    L'if che ho scritto, rileggendolo non è finito, si traduce in "se è settato" ( isset() ) e ( && ) è = a qualcosa ($_SESSION['errore'] == xxx ), es.

    Codice PHP:
    if (isset($_SESSION['errore']) && $_SESSION['errore'] == '') {
    [...] 
    o

    Codice PHP:
    if (isset($_SESSION['errore']) && !empty($_SESSION['errore'])) {
    [...] 
    o anche solo



    Codice PHP:
    if (isset($_SESSION['errore'])) {
    [...] 
    Per il significato di tutte queste funzioni, che sono built in del linguaggio, vedi sempre su php.net ( dovresti avere sempre una finestra del browser con php.net aperto ).


    @ mansportivo
    Ciao,
    fai questa ricerca su google

    http://www.google.it/search?q=sql+in...ient=firefox-a


    A presto

  10. #10
    Originariamente inviato da Razorblade
    Ciao StefanoC,
    innanzitutto IF non è un ciclo, ma un costrutto. FOR, WHILE, DO..WHILE ecc sono cicli, in quanto ciclano..
    ...esempi...

    A presto
    si , certamente, errore mio if non cicla un tubo è che mi interessava capire che tipo di controllo avresti messo tu.

    In sintesi è lo stesso che metterei io.

    ciaoo

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.