Domanda

È possibile verificare chi sta entrando nel tuo sito Web in PHP. Ho un'applicazione web (scritta in PHP) che dovrebbe consentire agli utenti di accedere solo a determinati siti Web. È possibile ottenere i siti Web di riferimento esaminando l'oggetto _Request ? Se sì, come?

È stato utile?

Soluzione

Sì, ma tieni presente che alcuni proxy e altre cose eliminano queste informazioni e possono essere facilmente forgiate. Quindi non fare affidamento su di esso. Ad esempio, non pensare che la tua app web sia protetta da CSRF perché controlli il referrer per abbinare il proprio server.

$referringSite = 

Sì, ma tieni presente che alcuni proxy e altre cose eliminano queste informazioni e possono essere facilmente forgiate. Quindi non fare affidamento su di esso. Ad esempio, non pensare che la tua app web sia protetta da CSRF perché controlli il referrer per abbinare il proprio server.

<*>

Se si desidera consentire solo le richieste provenienti da un dominio specifico, è necessario analizzare parte dell'URL per ottenere il dominio di livello superiore. Come ho imparato di più, questo può essere fatto con parse_url () di PHP. / p>

Come andyk sottolinea nei commenti, dovrai anche consentire www.example.com e l'esempio. com.

SERVER['HTTP_REFERER']; // is that spelt wrong in PHP ?

Se si desidera consentire solo le richieste provenienti da un dominio specifico, è necessario analizzare parte dell'URL per ottenere il dominio di livello superiore. Come ho imparato di più, questo può essere fatto con parse_url () di PHP. / p>

Come andyk sottolinea nei commenti, dovrai anche consentire www.example.com e l'esempio. com.

Altri suggerimenti

Mentre puoi guardare $ _SERVER ['HTTP_REFERER'] per ottenere il sito di riferimento, non scommettere la fattoria su di esso. Il browser imposta questa intestazione ed è facilmente falsificato.

Se è fondamentale che solo le persone provenienti da referrer specifici visualizzino il tuo sito, non utilizzare questo metodo. Dovrai trovare un altro modo, come l'autent di base, per proteggere i tuoi contenuti. Non sto dicendo che non dovresti usare questa tecnica, tieni presente che non è infallibile.

A proposito, puoi anche bloccare i referrer a livello di apache utilizzando mod_rewrite .

Non puoi fidarti del referrer. Nonostante provenga dall'array $ _SERVER , in realtà è un valore fornito dall'utente / browser ed è facilmente falsificato, usando cose come Firefox AddC RefControl .

È necessario esaminare l'array $ _SERVER per la chiave "HTTP_REFERER".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top