Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [PHP] Referer

  1. #1
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940

    [PHP] Referer

    Per evitare che si entri nel mio programma da link esterni (ovvero che il programma accetti come valide le richieste provenienti unicamente da esso stesso), secondo voi va bene il seguente?

    Codice PHP:
    if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']!="")
      {
      if (
    strpos($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST'])===false)     
        {
        
    // Qualcosa non quadra: uscire dal programma, creare file di log, etc etc.
        
    }
      } 

    [.:: JaguarXF ::.]
    __________________

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    il referer è una variabile che setta il browser, può essere facilmente modificato per farlo combaciare con il tuo host.

    Fai il controllo sull'ip, è meglio.
    ciao

  3. #3
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Più che per "tagliare le mani" all'utente, il codice è inteso per evitare attacchi CSRF, in cui il browser non è sotto il controllo diretto dall'hacker e quindi il referer è salvo.

    Facendo quindi conto che il referer non possa essere spoofato, il codice è giusto o nasconde chissà cosa?

    10x.

    [.:: JaguarXF ::.]
    __________________

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    mmm... non sono sicuro, ma credo che anche con curl sia possibile modificare il referer..

    quindi se io da curl richiamo la tua pagina cambiando il refereer posso mettere in una variabile il risultato della richiesta...

    sto ipotizzando però..

  5. #5
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    spero di non dire una castroneria da principiante....
    ma sfruttare le sessioni?

    ad esempio supponiamo di voler verificare che un form venga usato solo dal nostro sito e che non venga fatta una richiesta diretta (post o get) proveniente da un sito terzo....

    Creo una sessione nella pagina contenente il form e verifico che la risposta appartenga alla stessa sessione...
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  6. #6
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    @Habanero: se l'utente è autenticato (via sessioni), tanto peggio. Tanti più danni...

    Da una mia pillola sulla sicurezza, che forse diverrà guida di php.net (spero che preso così si capisca):

    [...] Ciò premesso, gli attacchi di tipo CSRF vengono portati a termine sostituendo, all’interno del tag HTML <img> e simili, una particolare stringa – una qualsiasi query string opportuna: il browser tratterà questa esattamente come la richiesta per una nuova pagina HTML, quale l’avessimo scritta noi manualmente nella barra degli indirizzi.

    [...] Un utente autenticato (si badi bene: autenticato), data un’iniezione di “codice CSRF” in un programma/sito Web, potrebbe esser portato a fare qualsiasi cosa l’hacker voglia, una volta visualizzata la pagina hackerata, e nemmeno se ne accorgerebbe (salvo non riuscire a visualizzare un’immagine: ben poco)!

    Ad esempio potrebbe cancellare tutti i suoi messaggi personali:

    codice:
    [img]Sito_A?del=y&from_id=1&num=1000[/img]
    O potrebbe cancellare qualche altro record importante da database, magari non suo – nel caso l’utente avesse particolari diritti/privilegi.

    [.:: JaguarXF ::.]
    __________________

  7. #7
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Ma c’è di più: non necessariamente la pagina hackerata deve far parte del programma/sito attaccato: è sufficiente che l’utente, autenticato sul sito attaccato, visiti una pagina malevola sul sito controllato dall’hacker, la quale pagina rediriga al sito attaccato con query string (o POST vars) ad hoc.

    La propagazione della sessione sul sito attaccato avviene infatti ugualmente, dacché il browser invia, come sempre, il cookie contenente il SID al server: è il browser usato che gestisce i cookies.

    [.:: JaguarXF ::.]
    __________________

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.