Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478

    [php] HTTP_REFERER e sicurezza

    Dal manuale ufficiale:
    'HTTP_REFERER'
    The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.
    Ok, prendiamo per buono il fatto che gli stessi autori di php avvertono della poca affidabilità nell'uso di "HTTP_REFERER" (anche se su certi manuali non viene nemmeno accennato minimamente questo aspetto, questo ne è un esempio), la domanda è: in che modo è possibile falsificare questo dato?

    In pratica, con un semplice codice tipo questo:
    Codice PHP:
    [FONT=courier new]
    <?php
    if(isset($_SERVER['HTTP_REFERER'])) {
      if(
    $_SERVER['HTTP_REFERER'] == 'http://dominio_prova.it/main.php'){
        
    //valido, istruzioni...
      
    } else {
        
    //non valido, istruzioni...
      
    }
    }
    ?>[/FONT]
    si ha un margine di sicurezza minimo/medio, giusto?

    Sè si, in che modo si può bypassare il controllo?


  2. #2
    semplicemente, essendo completamente modificabile lato client, non bisogna usare quella variabile per costruirci sopra parti importanti della logica della tua applicazione.

    Puoi utilizzarlo a fini statistici, per il resto è abbastanza inutile.

  3. #3
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    cosa intendi per "falsificare questo dato " ? Non ho capito

    comunque posso dirti che proprio in questi giorni ho provato ad utilizzare codice che usa HTTP_REFERER in un mio sito e sebbene ame funzioni correttamente (anche in locale) c'è un mio amico che non riesce proprio a visualizzare la pagina. Quindi ritengo che sia veramente inaffidabile.

    Il codice mio in questione è il seguente: (serve per verificare che comunque le pagine provengono dallo stesso dominio)

    Codice PHP:

    $pagina_riferimento 
    substr$_SERVER['HTTP_REFERER'], 026 );

    if (!
    strstr($path_sito,$pagina_riferimento)) {
               die(
    'Errore nel caricamento della pagina. Riprova!"; ');

    comunque l'ho dovuto togliere

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    [supersaibal]Originariamente inviato da skidx
    semplicemente, essendo completamente modificabile lato client, non bisogna usare quella variabile per costruirci sopra parti importanti della logica della tua applicazione.

    Puoi utilizzarlo a fini statistici, per il resto è abbastanza inutile. [/supersaibal]
    Ecco, proprio questo vorrei capire: in che modo si può modificare?

    (sul discorso di evitare l'uso di questa variabile per gestire passaggi delicati del programma, sono pienamente d'accordo...)

  5. #5
    beh, credo che sia una variabile spedita da browser, quindi da un client, e uno si può programmare un client (anche in Php) che manda le variabili che vuole, tipo user_agent, cookie, e anche referer...

  6. #6
    ho letto una nota al proposito di HTTP_REFERER :
    Se l'indirizzo della pagina è inserito direttamente nella barra indirizzi non apparirà niente. La variabile ha valore solo se si entra nel sito da un link da altro sito o da pagina del sito stesso.
    Personalmente utilizzo $_SESSION...

    $_SESSION['from'] = "../path/file.php";

    e sai da dove viene....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    [supersaibal]Originariamente inviato da Claudio Vituzzi
    beh, credo che sia una variabile spedita da browser, quindi da un client, e uno si può programmare un client (anche in Php) che manda le variabili che vuole, tipo user_agent, cookie, e anche referer... [/supersaibal]
    Grazie, in linea di massima adesso mi è chiaro il concetto...

    [supersaibal]Originariamente inviato da piero.mac
    ho letto una nota al proposito di HTTP_REFERER [...]

    Personalmente utilizzo $_SESSION...

    $_SESSION['from'] = "../path/file.php";

    e sai da dove viene....

    [/supersaibal]
    Avevo già letto una cosa simile... quindi l'uso della variabile HTTP_REFERER è praticamente inopportuno quando si ha la necessità di lavorare con dati sensibili. Comunque, condivido il tuo utilizzo delle sessioni, offrono una garanzia più che valida (se non il massimo) in ambito sicurezza.


    PS: ma tu non dormi mai?

  8. #8
    qui' nessuno dorme mai

  9. #9
    tra l'altro HTTP_REFERER è insicura perchè non sempre viene registrata dal browser (in base alle impostazioni di firewall, antivirus etc dell'utente)
    w la topa

  10. #10
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    [supersaibal]Originariamente inviato da saibal
    tra l'altro HTTP_REFERER è insicura perchè non sempre viene registrata dal browser (in base alle impostazioni di firewall, antivirus etc dell'utente) [/supersaibal]
    Interessante... però, è assunrdo che nonostante tutte queste situazioni che ne rendono l'utilizzo molto limitato, nel manuale che ho citato prima, non solo non vengono menzionate le caratteristiche negative di questa variabile ma, addirittura, se ne consiglia l'uso nei casi in cui si desidera aumentare il livello di sicurezza dell'applicazione... mah!?

    Comunque, grazie a tutti per le preziose informazioni ...in particolar modo ai "nottambuli"

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.