문제

나는 사람들이 익명으로 투표 할 수 있지만 한 번만 투표 할 수있는 투표 시스템으로 웹 사이트를 만들고 있습니다.

시스템이 이미 투표했는지 확인해야합니다 (사용자가 이미 투표했는지 여부를 확인해야 함). 그러나 사용자 이름이나 사용자의 IP 주소를 데이터베이스에 저장하고 싶지 않았습니다 (익명 성짐마자나는 시작하는 방법을 모른다, 나는 어떤 지침이 필요하다.내가 무엇을 찾아야합니까?

도움이 되었습니까?

해결책

귀하의 최악의 문제는 사용자가 한 번만 투표하는지 확인하는 방법은 무엇이지만 그 질문의 지점이 아닙니다 : 당신은 모노 이상을 보장하는 방법을 묻습니다

그것은 오히려 쉽습니다. 단일 투표에 사용하는 모든 것을 암호로 취급하고 해시를 처리합니다.그러므로 인수가 IP를 사용하고있는 것을 말할 수 있습니다.나는 그 문제를 알고 있지만 이것이 당신의 선택이라고 가정 할 수 있습니다.

  • 사용자 votes
  • 당신은 IP를 해시하고 그것을 저장합니다.
  • 다른 위치에 저장하는 것만 큼 멀리 갈 수도 있습니다.해시가 무엇을 투표한지 저장할 필요가 없습니다.
  • 사용자 votes 다시 -> ip-hash는 데이터베이스에서 allready입니다.
  • 누군가가 이미 투표 한 경우 멀리 해주지 않으려면 "당신은 이미 투표 했음"이지만, 그냥 투표를 저장하지 마십시오.이 기계 가이 기계로부터 투표가 있는지 여부를 알 수없는 방법은 없습니다.

마음에, 이것은 단일 투표를 보장하는 방법에 관한 것에 관한 것입니다.

다른 팁

As Lix stated, really the only way, without storing IP addresses or forcing users to register, would be to store a Cookie linked to a session, however of course this is by no means a solution, as Cookies can easily be cleared.

You could attempt to use a persistent Cookie solution, such as evercookie, but if I were a user of a site which implemented something like that, it would annoy me more than having to register, and no matter what methods are used, they can always be circumvented to remove the Cookie/identifying information.

Another possibility is another form of persistent Cookies which got a lot of publicity last year (or was it 2012 - I forget), which utilize Flash to store Cookies. These Cookies can be accessed in multiple browsers. One such solution is flash-cookie, but again, this is likely to annoy users, and would not be 100% reliable as not all users have Flash enabled or installed.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top