2009-02-07 4 views
6

사용자에게 예/아니요 질문을하고 해당 투표를 데이터베이스에 기록하는 ASP.NET (C#) 폴링을 만들려고합니다. . 스팸을 방지하기 위해 사용자가 한 번만 투표 할 수 있도록하고 싶습니다. 사용자 IP 주소 로깅에 대해 생각해 보았습니다. 이것이 답이라면 누군가가 나에게 이것이 어떻게 성취 될 수 있는지 보여주는 자습서를 줄 수있다. 이것이 대답이 아니라면 나에게 당신의 제안을 해주십시오.사용자가 ASP.NET 폴링에서 한 번만 투표 할 수 있도록하는 방법

편집 : 사용자가 내 웹 사이트가 아니기 때문에 회원 가입을 요청하지 않습니다.

+0

이것은 언어 독립적 인 질문으로 더 좋을 것입니다. :) – skiphoppy

+0

나는 ASP.NET과 C#만을 사용한다. 웹 사이트에서 작동하지 않는 C++를 제외한 다른 언어는 모른다. 오, 그리고 아주 기본적인 자바 스크립트. – Kredns

답변

2

이중 투표 사기를 방지하는 유일한 방법입니다하지만 당신은 명시 적으로 IP 주소를 기록 할 수있는 방법을 요구하기 때문에, 당신은에서를 통해 얻을 수 있습니다 :

HttpContext.Current.Request.UserHostAddress;

또는

DB에 저장하고 각 폴링에 IP가 있는지 확인하기 쉽습니다.

+0

그건 내가 찾고 있던 것 같아. – Kredns

+0

그게 당신에게 IP 주소를 가져 오는 동안, 그것은 투표에 대한 특히 좋은 지표는 아닙니다. (제가, 그리고 다른 사람들이 언급했듯이) –

+0

@Mitch Wheat, 이것은 표준 관행입니다. 그것은 어리석은 증거는 아니지만 이것이 문제에 접근하는 받아 들여진 방법입니다. 웹 로그 분석 제품군은 동일 기반 UU를 계산합니다. 답변이 제시하는대로 사용자 등록이 부족하다는 제안이 있으시면 알려 주시기 바랍니다. – aleemb

11

사용자를 인증 할 수있는 경우 각 사용자가 한 표만 가질 수 있습니다. 따라서 사용자가 여러 계정을 등록하지 못하도록하는 인증 메커니즘이 필요합니다.

온라인 신문 구독자 또는 평판 시스템 (StackOverflow)과 같이 사용자가 자신의 계좌에 투자 한 환경에서만이 작업을 볼 수 있습니다.

+0

실용적인 솔루션이 아닙니다. 폐쇄 된 공동체 밖에서는 적용 할 수 없습니다. 등록 과정은 투표를 방해 할 뿐이므로이 접근 방식은 역효과를 낳습니다. – aleemb

4

등록 된 사용자 목록이있는 경우 guid (예 :)가 포함 된 생성 된 고유 링크가 포함 된 전자 메일을 보내고 데이터베이스에 GUID를 기록하고 투표시 일치하십시오.

일반적으로 공개적으로 액세스 할 수 있고 안전하다고 말하는 경우 자체 IP 주소로는 충분하지 않습니다 (보안 전자 투표와 관련된 많은 문제에 대한 Google 전자 선거 투표).

무료 투표 서비스 중 하나를 사용하는 것에 대해 생각해 보셨습니까?

Condorcet Internet Voting Service

3

IP 주소뿐만 아니라 프록시 뒤에 작업하는 사람들의 수백만 작동하지 않습니다.

쿠키는 부분적인 해결책이지만 투표 로봇은 쿠키를 보낼 수 없습니다. 세션에 기록

1

이메일 등록을 요구하는 등록을하고 이메일 주소가 사용자 중 DB의 고유 한 열인지 확인하십시오. 그런 다음 투표를 이메일 주소에 연결하십시오. 여러 이메일 주소를 가진 양말 인형극을 완전히 막지는 못하지만 대부분의 노력을 기울일만한 가치가있는 것은 아닙니다.

+0

각 사용자의 한 번 투표에 고유 번호 (GUID)를 생성하는 것이 더 좋습니다 ... –

4

하나의 IP 주소로 단일 투표를 제한 할 수 없습니다. IP 주소는 단일 사용자와 동일하지 않습니다. IP 주소는 하나 이상의 사용자를 나타냅니다.

0

IP와 사용자 에이전트를 함께 사용하면 합리적인 해결책을 얻을 수 있습니다.

0

하나의 IP 주소가 단일 사용자와 일치하지 않는다는 것에 동의하지만, 이는 한 사람당 하나의 투표를 유지하는 가장 안전한 방법이라고 생각합니다. 나는 보통 누가 투표를했는지 추적하기 위해 쿠키를 사용합니다. 물론이 쿠키는 쿠키를 삭제 한 다음 다시 투표 할 수있는 간단한 해킹입니다.투표가 임의적 인 물건이라면 나는 그다지 신경 쓰지 않는다. 올바른 투표가 귀하의 응용 프로그램에 대해 중요하다면 IP 주소를 사용하십시오.

관련 문제