Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221

    Capire da che pagina arriva la richiesta Post

    Qualcuno sa se esiste una funzione o un metodo che mi dica da quale pagina arriva la richiesta di un Post o Get.

    mi spiego meglio, supponiamo chei io abbia 2 pagine, form.html e script.php, ovviamente la pagina form.html conterrà un form la cui action invierà a script.php che provvederà a elaborare le richieste dell'utente; io vorrei avere la certezza che la pagina form.html non sia stata 'manipolata' dell'utente, ovvero che la richiesta arrivi effettivamente dalla pagina 'form.html' che si trova sul server e non da una sua copia fatta in locale dall'utente.

    Qaulcuno ha qualche idea su come procedere?

    Grazie a tutti


  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Il modo più rapido è quello di controllare la variabile $_SERVER['HTTP_REFERER'], che contiene l'indirizzo di provenienza dell'utente. Trattandosi però di un'informazione HTTP inviata dal client, in teoria potrebbe essere manipolata e quindi non offre sicurezza al 100%.
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  3. #3
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Si questo potrebbe essere un primo controllo, però come dici tu non è sicurissimo, perchè l'informazione viene dal client, non esiste qualcosa di più sicuro? anche magari un metodo o una tecnica da adottare, io continuo a pensarci ma non mi viene in mente niente di realmente inattaccabile

  4. #4
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    up


  5. #5
    Ne abbiamo parlato in questo thread: http://forum.html.it/forum/showthrea...readid=1396522

    Il punto 3, cross site request forgeries.

  6. #6
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Effettivamente avevo pensato a una soluzione come questa, ovvero usare un token, però non la trovo molto efficacie; ti spiego le mie perplessità così mi puoi dire se c'è qualcosa che mi sfugge:

    Supponiamo che la mia applicazione generi un form di quato tipo:

    codice:
    <form action='paginadicontrollo.php' name='' metod='post' >
    <input type='hidden' name='token' value='0cc175b9c0f1b6a831c399e269772661' />
    <input type='hidden' name='id_riga' value='2' />
    
    <input type='text' name='textutente' value'' />
    
    <input type='submit' mane='modifica' value='Modifica' />
    </form>
    l'utente potrebbe tranquillamente, prima di cliccare sul tasto modifica, crearsi una pagina in locale come questa:


    codice:
    <form action='http://www.sito.it/paginadicontrollo.php' name='' metod='post' >
    <input type='hidden' name='token' value='0cc175b9c0f1b6a831c399e269772661' />
    <input type='hidden' name='id_riga' value='3' />
    
    <input type='text' name='textutente' value'' />
    
    <input type='submit' mane='modifica' value='Modifica' />
    </form>
    e cliccando su Modifica del 'suo' form, a me arriverebbe il token corretto, per cui lo script eseguirebbe l'operazione sulla riga 3 anzichè sulla 2.

    il ragionamento è corretto o c'è qualcosa che mi sta sfuggendo?

  7. #7
    Si ma il punto e' evitare che qualcuno possa ingannare un utente facendogli fare una richiesta manipolata (forged request) tramite un form esterno al sito destinatario del form stesso, cioe' prendere un utente legittimo e ignaro e fargli fare qualcosa che vuoi tu.

    Quello che dici tu e' inevitabile ma non e' un problema, perche' comunque devi verificare qualsiasi input ricevuto dal client: se quell'id_riga contiene un valore a cui l'utente non ha accesso, allora gli mostrerai un messaggio di errore.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.