Navegadores diferentes permitem medidas de segurança diferentes quando o sinalizador HTTPOnly é definido. Por exemplo, o Opera e o Safari não impedem que o javascript grave no cookie. No entanto, a leitura é sempre proibida na versão mais recente de todos os principais navegadores.
Mas o mais importante, por que você quer ler um HTTPOnly
cookie? Se você for um desenvolvedor, apenas desative o sinalizador e certifique-se de testar seu código para xss. Eu recomendo que você evite desabilitar este sinalizador, se possível. O HTTPOnly
sinalizador e o "sinalizador seguro" (que força o envio do cookie por https) sempre devem ser definidos.
Se você for um invasor , deseja sequestrar uma sessão . Mas existe uma maneira fácil de sequestrar uma sessão, apesar da HTTPOnly
bandeira. Você ainda pode andar na sessão sem saber a id da sessão. O worm Samy do MySpace fez exatamente isso. Ele usou um XHR para ler um token CSRF e, em seguida, executar uma tarefa autorizada. Portanto, o invasor pode fazer quase tudo que o usuário conectado pode fazer.
As pessoas têm muita fé na HTTPOnly
bandeira, o XSS ainda pode ser explorado. Você deve configurar barreiras em torno de recursos sensíveis. Por exemplo, o campo de alteração de senha deve exigir a senha atual. A capacidade de um administrador de criar uma nova conta deve exigir um captcha, que é uma técnica de prevenção de CSRF que não pode ser facilmente contornada com um XHR .