Domanda

Qual è il modo più affidabile e sicuro per determinare quale pagina ha inviato o chiamato (tramite AJAX), la pagina corrente. Non voglio usare $ _SERVER ['HTTP_REFERER'] , a causa della (mancanza di) affidabilità, e ho bisogno che la pagina venga chiamata per provenire solo da richieste originate sul mio sito. < br> Modifica: sto cercando di verificare che uno script che preforma una serie di azioni venga richiamato da una pagina del mio sito Web.

È stato utile?

Soluzione

Il RIFERIMENTO viene inviato dal browser del client come parte del protocollo HTTP ed è pertanto inaffidabile. Potrebbe non essere lì, potrebbe essere falsificato, non puoi fidarti se è per motivi di sicurezza.

Se vuoi verificare se una richiesta proviene dal tuo sito, non puoi, ma puoi verificare che l'utente sia stato sul tuo sito e / o sia autenticato. I cookie vengono inviati nelle richieste AJAX in modo che tu possa fare affidamento su questo.

Altri suggerimenti

Quello che ho trovato meglio è un token CSRF e salvarlo nella sessione per i collegamenti in cui è necessario verificare il referrer.

Quindi, se stai generando un callback FB, sarebbe simile a questo:

$token = uniqid(mt_rand(), TRUE);

Quello che ho trovato meglio è un token CSRF e salvarlo nella sessione per i collegamenti in cui è necessario verificare il referrer.

Quindi, se stai generando un callback FB, sarebbe simile a questo:

if(empty(

Quello che ho trovato meglio è un token CSRF e salvarlo nella sessione per i collegamenti in cui è necessario verificare il referrer.

Quindi, se stai generando un callback FB, sarebbe simile a questo:

$token = uniqid(mt_rand(), TRUE);

Quello che ho trovato meglio è un token CSRF e salvarlo nella sessione per i collegamenti in cui è necessario verificare il referrer.

Quindi, se stai generando un callback FB, sarebbe simile a questo:

<*>

Quindi index.php apparirà così:

<*>

Conosco siti sicuri che fanno l'equivalente di questo per tutte le loro pagine sicure.

SESSION['token'] = $token; $url = "http://example.com/index.php?token={$token}";

Quindi index.php apparirà così:

<*>

Conosco siti sicuri che fanno l'equivalente di questo per tutte le loro pagine sicure.

GET['token']) ||

Quello che ho trovato meglio è un token CSRF e salvarlo nella sessione per i collegamenti in cui è necessario verificare il referrer.

Quindi, se stai generando un callback FB, sarebbe simile a questo:

$token = uniqid(mt_rand(), TRUE);

Quello che ho trovato meglio è un token CSRF e salvarlo nella sessione per i collegamenti in cui è necessario verificare il referrer.

Quindi, se stai generando un callback FB, sarebbe simile a questo:

<*>

Quindi index.php apparirà così:

<*>

Conosco siti sicuri che fanno l'equivalente di questo per tutte le loro pagine sicure.

SESSION['token'] = $token; $url = "http://example.com/index.php?token={$token}";

Quindi index.php apparirà così:

<*>

Conosco siti sicuri che fanno l'equivalente di questo per tutte le loro pagine sicure.

GET['token'] !==

Quello che ho trovato meglio è un token CSRF e salvarlo nella sessione per i collegamenti in cui è necessario verificare il referrer.

Quindi, se stai generando un callback FB, sarebbe simile a questo:

$token = uniqid(mt_rand(), TRUE);

Quello che ho trovato meglio è un token CSRF e salvarlo nella sessione per i collegamenti in cui è necessario verificare il referrer.

Quindi, se stai generando un callback FB, sarebbe simile a questo:

<*>

Quindi index.php apparirà così:

<*>

Conosco siti sicuri che fanno l'equivalente di questo per tutte le loro pagine sicure.

SESSION['token'] = $token; $url = "http://example.com/index.php?token={$token}";

Quindi index.php apparirà così:

<*>

Conosco siti sicuri che fanno l'equivalente di questo per tutte le loro pagine sicure.

SESSION['token']) { show_404(); } //Continue with the rest of code

Quindi index.php apparirà così:

<*>

Conosco siti sicuri che fanno l'equivalente di questo per tutte le loro pagine sicure.

SESSION['token'] = $token; $url = "http://example.com/index.php?token={$token}";

Quindi index.php apparirà così:

<*>

Conosco siti sicuri che fanno l'equivalente di questo per tutte le loro pagine sicure.

Utilizzo di $ _SERVER ['HTTP_REFERER']

  

L'indirizzo della pagina (se presente) che ha indirizzato l'agente utente a   pagina corrente. Questo è impostato dal programma utente. Non tutti gli user agent lo faranno   impostare questo e alcuni forniscono la possibilità di modificare HTTP_REFERER come a   caratteristica. In breve, non ci si può davvero fidare.

if (!empty(

Utilizzo di $ _SERVER ['HTTP_REFERER']

  

L'indirizzo della pagina (se presente) che ha indirizzato l'agente utente a   pagina corrente. Questo è impostato dal programma utente. Non tutti gli user agent lo faranno   impostare questo e alcuni forniscono la possibilità di modificare HTTP_REFERER come a   caratteristica. In breve, non ci si può davvero fidare.

<*>SERVER['HTTP_REFERER'])) { header("Location: " .

Utilizzo di $ _SERVER ['HTTP_REFERER']

  

L'indirizzo della pagina (se presente) che ha indirizzato l'agente utente a   pagina corrente. Questo è impostato dal programma utente. Non tutti gli user agent lo faranno   impostare questo e alcuni forniscono la possibilità di modificare HTTP_REFERER come a   caratteristica. In breve, non ci si può davvero fidare.

<*>SERVER['HTTP_REFERER']); } else { header("Location: index.php"); } exit;

Non esiste un modo affidabile per verificarlo. È davvero sotto la mano del cliente per dirti da dove proviene. Potresti immaginare di utilizzare le informazioni sui cookie o sulle sessioni inserite solo in alcune pagine del tuo sito Web, ma così facendo, l'esperienza dell'utente con i segnalibri potrebbe essere interrotta.

Abbiamo solo una sola opzione dopo aver letto tutti i problemi di falsi referrer: cioè La pagina che desideriamo monitorare come referrer dovrebbe essere mantenuta in sessione, e come ha chiamato ajax, quindi controllando nella sessione se ha un valore di pagina referrer e facendo un'azione altrimenti saggiamente nessuna azione.

Mentre invece richiede una pagina diversa, imposta il valore della sessione del referrer su null.

Ricorda che la variabile di sessione è impostata solo sulla richiesta della pagina desiderata.

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