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 ...

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top