Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Contro sui referrer

  1. #1

    Contro sui referrer

    Salve a tutti, so che questo quesito potrà sembrare a molti una "paranoia" ma mi incuriosce la questione. Ho la seguente situazione:

    Pagina con form con alcuni campi hidden necessari all'elaborazione corretta nella pagina action.
    Se io mi salvassi in locale la pagina col form e modificassi i campi hiddden e inviassi il modulo, la pagina action non dovrebbe fare le elaborazioni in modo corretto (ovviamente immagino il caso di un utente particolarmente rompiscatole) fino ad arrivare all'incoerenza del database.

    Per ovviare a questo problema ho pensato di fare una funzioncina da mettere in ogni pagina action che controlla il referrer.

    La funziona è questa:

    Codice PHP:
    function    checkReferrer($fStrUrl,$fStrRedirect){

            
    $strReferrer=trim($_SERVER['HTTP_REFERER']); 
            
            if    (
    strpos($strReferrer,$fStrUrl)!==0){
                
    header("Location: " $fStrRedirect);
                exit();
            }

    Nella chiamata a funzione io passo l'url completo della pagina e la pagina a cui fare il redirect in caso di errore.
    Uso una strpos e non una strcmp perché altrimenti dovrei reperire in qualche modo i parametri della querystring (se c'è) della pagina form e questo mi rende meno sicuro lo script (se passo il parametro tramite campo hidden sono punto e a capo).

    Qui ho un discreto livello di sicurezza, vengono accettate soltanto pagine provenienti dal mio sito quindi con url:

    www.miodomino.ext/path

    Ora mi chiedo, è possibile che un utente chiami il suo pc invece che localhost, www.miodominio.ext e costruisca una struttura di path esattamente come quella che ho sul sito in modo che quando richiami la pagina form precedentemente salvata abbia in locale lo stesso path mio?
    Cosa succede in questo caso? Il browser a quale dei due domini reindirizza?
    Spero di avervi incuriosito! Putroppo questo test non posso farlo da solo in quanto per qualche strano motivo se nella barra degli url uso http://nomepc invece che http://localhost il server non funziona più! C'è qualcuno interessato alla cosa che lo farebbe al mio posto?
    Grazie a tutti
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    non è un discreto metodo di sicurezza, il referer non è affidabile in quanto può essere modificato. Così puoi fermare degli sprovveduti, ma chi è interessato a mandare dei dati al tuo file action senza passare per il form se lo fa, di solito, è perchè sa come farlo.
    Basta dare un'occhiata agli headers e replicarli con le dovute modifiche.
    Errare humanum est, perseverare ovest

  3. #3
    Accidenti, non ci avevo pensato, consigli sulla risoluzione del problema? Vorrei evitare di usare le sessioni!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  4. #4
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    L'unico consiglio che io posso darti è di fare un buon controllo sui dati che ricevi nel file action.
    Errare humanum est, perseverare ovest

  5. #5
    Ma questo non mi salva da rischi di incoerenza del database!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  6. #6
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    Scusa, mi sfugge cosa intendi per rischi di incoerenza
    Errare humanum est, perseverare ovest

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.