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

    Flash -> Referer mancante

    Ciao a tutti!
    Ho creato una piccola interfaccia flash che invia due campi di testo (user e password) tramite il metodo POST ad una pagina PHP.
    La pagina PHP ricava i dati inviati senza problemi.
    In essa utilizzo la variabile $HTTP_REFERER per testare se l'invio dei dati è stata effettuata dalla mia pagina (per migliorare la sicurezza...).
    Tale variabile memorizza correttamente la pagina di riferimento se invio i dati da un form html, ma se invio i dati da Flash, viene salvata in essa una stringa vuota!
    Come faccio a risolvere il problema?
    Grazie!!

  2. #2
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    Visto che il referer viene inviato dal browser e si può quindi manipolare, molto semplicemente NON fai affidamento a questa variabile, in quanto insicura
    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


  3. #3
    Ok...
    Quale metodo posso utilizzare allora, per garatire la sicurezza dell'invio dei dati in questione?
    Grazie mille!

  4. #4
    potresti crittarli prima di inviarli ... o spedire direttamente degli hash
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    Se il problema è avere dei dati sicuri, devi effettuare dei controlli sui campi che vengono passati (username e password nel tuo caso), ad esempio sulla lunghezza delle stringhe, o tramite un'espressione regolare.

    Se invece vuoi essere sicuro che i dati arrivino esclusivamente dal tuo form, puoi fare una cosa del genere:
    generi una stringa casuale, ad esempio con
    codice:
    $token = md5(uniqid(rand()));
    salvi il valore di questo token in un campo hidden del form e in sessione
    quando il form viene inviato, controlli se il dato passato via hidden è uguale al dato che hai in sessione (se sono diversi vuol dire che il campo hidden è stato manipolato)

    Ovviamente i controlli sui campi user e pass vanno fatti comunque, e secondo me bastano quelli, la storia del token dopo tutto è superflua se fai dei controlli rigidi sull'input
    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


  6. #6
    è tutto fatto in flash

    xo se invia il tutto in md5 e usa un salt ... puo fare una ricerca con quei dati direttamente

    ma non lo vedo comunque molto utile
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7

    Re: Flash -> Referer mancante

    [supersaibal]Originariamente inviato da redshadow
    Come faccio a risolvere il problema?
    [/supersaibal]
    flash in questo senso non e' affidabile e/o sicuro ... non saprai mai se a richiedere il login sara' stato quell' swf oppure no, ma a te questo non dovrebbe affatto importare, nel senso che quando invia i dati in post la pagina php controlla che user e pass, ovviamente la password la devi prima hashare in md5 o sha1, siano validi e presenti in database e solo allora ritornerai un &result=ok che nell' onLoad del sendAndLoad di Flash dara' accesso all' area "riservata" ... ma attenzione, una volta entrati flash dovra' memorizzare user e password usate ed inviarle ad ogni successiva ed ulteriore richiesta di modifiche, perche' se non controlli ogni volta che user e pass siano validi con un decompilatore mi trovo la pagina di gestione amministrazione e con una form in html faccio quello che mi pare nel tuo database ...



    Oppure si potrebbe pensare ad un altro metodo che mi e' venuto in mente ora ma che non e' comunque sicuro al 100%, la pagina contenente l' swf quando richiamata accoda all' swf una variabile in hash .. . tipo

    $token = md5(uniqid(rand()));

    <object .... movie.swf?token=$token

    allo stesso tempo il token viene inserito in una tabella dedicata

    insert into flash_check values ( NULL, '$token', time() )

    in questo modo ad ogni chiamata fatta dal flash al php invii la relativa token ( _level0.token ) ed il php altro non fara' che controllare che quel token sia stato memorizzato in tabella al fine di verificare se l' utente e' arrivato da quella pagina oppure no.

    Aggiungi un controllo prima dell' inserimento del tipo

    DELETE FROM flash_check WHERE tempo < ( time() - 3600 )

    dove 3600 e' la scadenza, tipo un' ora penso che basti e avanzi, e la tabella manterra' dimensioni accettabili ... non so se sia valido, e' uno stratagemma che non ho ancora sperimentato ma potrebbe essere un buon metodo ... se poi aggiungi alla tabella un campo con l' id di sessione dovresti essere piu' che blindato, ma controlla sempre user e pass, secondo me e' il metodo piu' semplice e indolore
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    Ottimo!!
    Ho risolto il problema con md5!
    Grazie mille!!

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.