JSF + Cookie

5 respostas
M

Pessoal,
Estou criando uma aplicação que possui uma parte com votação.
Para realizar a votação o usuário não precisa estar autenticado no Sitema.
Para evitar vários votos do mesmo usuário estive pensando em usar cookies, mesmo não sendo 100% garantido, mas já iria ajudar bastante.

Tenho uma dúvida no que é preenchido no nome e valor do cookie para identificar cada pessoa.
Pois depois preciso recuperar o mesmo.

Cookie ck = new Cookie("NOME", "VALOR");

Pois terá que ter um para cada pessoa que votar e para não deixá-la votar novamente iria verificar se existe este cookie.

Essa parte de gravar e recuperar que ficou vaga para mim.

Agradeço a ajuda.

5 Respostas

D

Cookies são gravados por um objeto de HttpServletResponse, quando uma página é carregada.
A recuperação é feita por um objeto de HttpServletRequest.
Será preciso ver como manipular estes objetos na implementação JSF que estiver utilizando.

M

Até aí eu sei…
Mas gostaria de saber como posso garantir um nome e valor que eu possa recuperar tendo a certeza que este cookie pertence a mim.
E tem como eu recuperar todos os cookies do browser deste usuário?
Obrigado!

M

Mr.style:
Até aí eu sei…
Mas gostaria de saber como posso garantir um nome e valor que eu possa recuperar tendo a certeza que este cookie pertence a mim.
E tem como eu recuperar todos os cookies do browser deste usuário?
Obrigado!

Mestre, o ponto principal do uso de Cookie é que ele é sempre de um domínio, ou seja aplicativos de domínios diferentes não conseguem recuperar o seu Cookie e manipulá-lo.

R

Porque você não obriga o cara a digitar o e-mail dele junto com o voto ? Pois mesmo que você use cookies é só o cara limpar os cookies do navegador que ele consegue votar novamente. Se o usuário tiver a malícia de favorecer alguém votando mais de uma vez, limpar cookies vai ser a 1a idéia que ele vai ter. Pelo menos com o e-mail ele vai ter um pouco mais de trabalho, tendo que criar vários endereços de e-mail.

Quanto à sua dúvida, é bem complicado garantir que o cookie é seu. O que você pode fazer é criar um nome qualificado, algo como “br.com.votesystem.usuario”. Para cada usuário você pode gerar uma UID e setar como valor do cookie. Mas isso é bem fácil de burlar, basta o cara visualizar os cookies que ele tem no navegador e criar o cookie na mão.

Enfim, se você realmente precisa dessa garantia, o ideal é criar um cadastro de usuário mesmo.

M

Entendi agora.
Agradeço muito.

Criado 30 de abril de 2012
Ultima resposta 30 de abr. de 2012
Respostas 5
Participantes 4