Enviando referem-se er (r) que ele está desligado no navegador?
-
19-09-2019 - |
Pergunta
Eu queria saber se havia uma maneira de enviar uma referer com um http-request apesar de estar ligada de no navegador (por exemplo, com javascript)?
O problema que tenho quando a referência não é enviado:
Eu estou tentando minimizar as mudanças de ataques, por isso sempre que uma página é carregada eu estou mudando o sessionKey ... as estadias sessionid o mesmo, mas as principais mudanças ... então basicamente quando uma página tem algum script- ou style-arquivos que precisam ser enviados a partir do servidor a referir (r) er é a página que precisa deles para ser exibido corretamente ou tem algumas peças que precisam do script. Quando eu mudar para outra página no meu servidor a referir (r) mudanças er. Ok, para explicá-lo, aqui é um padrão (se não é compreensível, por favor, diga):
start: GET test.html --> referrer := null
`--> GET style.css --> referrer := test.html
---- CLICK ON LINK TO GO TO: 'form.html'
GET form.html --> referrer := test.html
`--> GET sendRequest.js --> referrer := form.html
`--> GET style.css --> referrer := form.html
---- CALL A PAGE DIRECTLY OVER ADDRESS BAR: http://somedomain.com/someotherpage.html
GET someotherpage.html --> referrer := null
Assim, para fazer a mudança de trabalho sessionKey: Eu só mudar o sessionKey quando a referir (r) er é nulo ou eu estou mudando para outra página ... mas isso não vai funcionar quando "Enviar referer" está ligado off, como você poderia fazer quando usando o Opera ... b / c, em seguida, a referir-se (r) er é sempre nula e eu entrar em apuros quando o cliente envia o pedido de style.css do test.html páginas b / c em seguida, o novo sessionKey seria definido, mas o pedido para o style.css entra com o velho sessionKey ... então a maneira mais fácil (eu acho que ... talvez eu estou faltando alguma coisa) seria trabalhar com a referir (r ) er ...
Solução
Eu penso que você demasiado complicada isso.
Eles têm que ter os cookies ativados em ordem para a sessão de trabalho. Adicionar um cookie com uma cópia da chave de sessão atual. Sempre que um arquivo HTML é solicitado, teste para ver se a chave de cookie e jogo da chave de sessão. Se não o fizerem, então você provavelmente tem um ataque de repetição acontecendo. Vá em frente e ignorar pedidos de CSS,., Etc. Tudo que você realmente deve se preocupar é seus arquivos HTML.
Atualização da chave e escrevê-lo para a sua variável de sessão eo cookie sempre que um arquivo HTML é solicitado.
Com esse referencial é imaterial (ele pode ser falsificado de qualquer maneira) e você está protegido contra a repetição; que, penso eu, é o que a sua última análise, depois.
Outras dicas
Não sei o JavaScript você estava esperando para usar aqui, mas tenha em mente que se você estiver usando JavaScript para definir onde o usuário está indo (por exemplo, a página seguinte), em seguida, IE não irá enviar a referência em tudo !
Então, estar cansado do que mágica que você adicionar à sua página transições.
Bem, eu não vou dizer que eu entendo o seu problema, mas eu posso ter uma solução para simultation referer com JavaScript: você pode usar a propriedade window.name para armazenar o último URL carregado, e antes de substituí-lo, deveria armazenar URL da última página carregada.
(Para ser honesto eu não testei window.name para este fim, mas eu de fato tê-lo usado para a comunicação entre domínios ...)
Espero que isso ajude.