Rilevamento anomalo in HTTP REFERER

1

Sto provando a mettere in atto alcune anomalie e sto guardando i dati dei referrer (so che questo è facoltativo e può essere risolto in alcune circostanze). Ma vedo troppi casi di quelli che ritengo essere falsi positivi.

Da rfc2616 :

The Referer[sic] request-header field allows the client to specify,
for the server's benefit, the address (URI) of the resource from
which the Request-URI was obtained

Prendo questo per indicare che il referente deve essere compilato solo quando la richiesta viene generata da un link, da una sottomissione modulo, da una richiesta Ajax o da un contenuto correlato esplicitamente contenente l'URL di destinazione. Ad esempio, se l'utente naviga sul mio sito utilizzando un segnalibro, un indirizzo inserito manualmente o tramite un altro sito di pagina (senza considerare la possibilità che questo possa inviare un reindirizzamento 30x), non dovrei vedere la pagina in cui si trovavano precedentemente.

Ma vedo un gran numero di casi in cui l'URL fornito come referrer non ha alcun link al mio sito. Inoltre, molti di questi referrer sono operazioni affidabili (incluse le grandi banche) che dovrebbero essere protette contro gli attacchi di tipo XSS, quindi è improbabile che i casi che vedo siano dovuti all'utente che accede a una pagina modificata.

Sono consapevole che ci sono molti problemi in sospeso su iPad e iPhone (CVE-2009-2797, CVE-2008-3171) che danno origine a questo comportamento (prima che iniziassi a filtrarli, ipad e iphone erano rappresentati in modo sproporzionato in l'output) tuttavia sto vedendo queste stranezze per MSIE, Firefox e 26, e molto occasionalmente Google Chrome.

Non sono stato in grado di replicare il comportamento su Firefox (stessa versione riportata dai miei dati di produzione) usando

  • un semplice href (il riferimento è una pagina precedente)
  • un modulo (sia GET che POST) (il referer è la pagina precedente)
  • una modifica a window.location tramite javascript (il riferimento è una pagina precedente)
  • un img ref (il riferimento è una pagina precedente)
  • segnalibro (nessun riferimento)
  • posizione inserita manualmente (nessun riferimento)

Non ho visto gli script di tipo Greasemonkey - qualcuno può consigliare se questi daranno origine a questo comportamento? Non vedo alcuna prova di pre-volo che implicherebbe un CORS.

C'è qualcos'altro che mi manca?

    
posta symcbean 10.01.2014 - 14:42
fonte

2 risposte

1

È un metodo comune di spamming (SEO) per dare referenti falsi con la speranza di essere elencati in un posto o in un altro, questo potrebbe spiegare alcune delle voci.

    
risposta data 10.01.2014 - 20:15
fonte
0

Se una pagina web non si collega direttamente alla tua pagina web, ma invia gli utenti attraverso uno script di reindirizzamento che reindirizza gli utenti con un codice di stato 301 Spostati permanentemente , il referrer sarà la pagina su cui si trovava il link al posto dello script .

Ad esempio, considera il seguente scenario:

Pagina 1

Questa è una pagina che collega al tuo sito tramite uno script di reindirizzamento.

(…)<a href="/redirect.php?goto=your_site_url">Your Site</a>(…)

Pagina 2

Questo è lo script di reindirizzamento. Potrebbe essere semplice come:

<?php if(!isset($_GET['goto'])) die("No redirect URL found");
  header('HTTP/1.1 301 Moved Permanently');
  header('Location: '.$_GET['goto']);//You should not do this in your application: http://websecurity.com.ua/3386/ https://www.owasp.org/index.php/HTTP_Response_Splitting https://www.owasp.org/index.php/Open_redirect
  die("Moved <a href='".$_GET['goto']."'>Here</a>.");//This is a bad idea as well: https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)
?>

Ora, se un utente fa clic sul link a pagina 1, verrà inviato al tuo sito tramite lo script di reindirizzamento, ma con la pagina con il link su di esso come Referer [sic].

    
risposta data 10.06.2014 - 11:28
fonte

Leggi altre domande sui tag