Definir um cookie para HttpOnly via Javascript

87

Eu tenho um cookie que NÃO HttpOnlyPosso definir esse cookie por HttpOnlymeio de JavaScript?

Eric Hotinger
fonte
1
Como seria possível definir um cookie por JavaScript que o próprio JavaScript não deveria ser capaz de manipular? Basta configurá-lo no lado do servidor.
BalusC
1
O Cookie NÃO é HttpOnly e quero defini-lo como HttpOnly via Javascript.
5
Acho que você perdeu o ponto de HttpOnly.
BalusC
Ótima pergunta. Realmente não há nenhuma desvantagem em definir um cookie HttpOnly do cliente no que diz respeito à segurança. Então você acha que isso seria permitido. Mas é claro que não é.
PHP Guru

Respostas:

171

Um HttpOnlymeio de cookie que é não disponível para linguagens de script como JavaScript. Portanto, em JavaScript, não há absolutamente nenhuma API disponível para obter / definir o HttpOnlyatributo do cookie, pois, de outra forma, isso invalidaria o significado de HttpOnly.

Basta configurá-lo como tal no lado do servidor, usando qualquer idioma do lado do servidor que ele esteja usando. Se o JavaScript for absolutamente necessário para isso, você pode considerar apenas deixá-lo enviar alguma solicitação (ajax) com, por exemplo, algum parâmetro de solicitação específico que aciona a linguagem do lado do servidor para criar um cookie HttpOnly. Mas, isso ainda tornaria mais fácil para os hackers alterarem o HttpOnlypor apenas XSS e ainda tivessem acesso ao cookie via JS e, assim, tornaria o HttpOnlyno seu cookie completamente inútil.

BalusC
fonte
4
Estou me perguntando como um aplicativo do lado do cliente como a extensão do navegador "EditThisCookie" pode alterar o sinalizador HttpOnly para falso.
pavanw3b
1
@ PavanW3b: Ele não usa uma linguagem de script do lado do cliente como JavaScript para isso. É apenas uma extensão do navegador.
BalusC,
10
As extensões do navegador @BalusC são escritas em JS e já há algum tempo developer.chrome.com/extensions "Você as escreve usando tecnologias da web como HTML, JavaScript e CSS." developer.mozilla.org/en-US/Add-ons/WebExtensions/… "Eles são escritos usando tecnologias da Web padrão - JavaScript, HTML e CSS - além de algumas APIs JavaScript dedicadas." E exemplo de um código aberto escrito em 2013 github.com/Asana/Chrome-Extension-Example
Justin Hamade
52
Eu realmente não vejo como ser capaz de definir HttpOnly de JS iria "anular o significado de HttpOnly", desde que o cookie ainda seja ilegível no script ...
alô
4
MDN diz que é proibido. developer.mozilla.org/en-US/docs/Web/HTTP/…
mpoisot