투표 경쟁에서 부정행위자를 사냥하는 것
현재 우리는 매우 잘 진행되는 대회를 운영하고 있습니다.불행하게도 우리는 그들의 출품작에 자동으로 투표하는 스크립트를 실행하는 모든 부정행위자들이 사업에 복귀했습니다.예를 들어 동일한 브라우저로 70분 내내 5성 등급의 데이터베이스 항목을 수동으로 확인하여 부정행위자를 이미 보았습니다.이제 사용자 기반이 커짐에 따라 사용자를 식별하기가 점점 더 어려워집니다.
지금까지 수행한 작업:
- 우리는 IP와 브라우저를 저장하고 그 조합을 1시간 간격으로 차단합니다.쿠키는 이 사람들에게 도움이 되지 않을 것입니다.
- 우리는 또한 고장난 캡차를 사용하고 있습니다.
PHP 스크립트를 사용하여 데이터베이스에서 패턴을 어떻게 찾을 수 있는지 또는 어떻게 더 효율적으로 차단할 수 있는지 아는 사람이 있습니까?
어떤 도움이라도 주시면 대단히 감사하겠습니다...
직접 피드백 제거
이는 다른 많은 방법과 결합할 수 있는 일반적인 전략에 가깝습니다.스팸 메일을 보내는 사람이 성공하면 그 사실을 알리지 마세요.
현재 결과를 모두 숨기거나 절대 투표 수 없이 백분율만 표시하거나 투표 표시를 지연할 수 있습니다.
- 찬성: 모든 방법에 대해 양호함
- 반대: 사기가 큰 경우, 백분율 표시 및 지연은 효과적이지 않습니다.
투표의 무효화
일반적인 전략이기도 합니다.만약 당신이 그 투표가 스팸메일 발송자에 의한 것이라고 가정할 이유가 있다면, 그들의 투표를 세고 그것을 무효로 표시하고 마지막에 무효표를 삭제하세요.
- 찬성: 탐지 가능한 모든 스팸 공격에 효과적
- 반대: 표를 왜곡하고, 설정하기 어렵고, 잘못된 긍정.
캡차
캡차를 사용합니다.캡차가 고장났으면 더 좋은 캡차를 사용하십시오.
- 찬성: 모든 자동화된 스크립트에 적합합니다.
- 단점: 인두염에 효과가 없습니다.
IP 확인
시간 범위에서 IP 주소가 투표할 수 있는 투표 수를 제한합니다.
- 찬성: 브라우저에서 F5를 계속 치는 무작위 학생에게 적합합니다.
- 찬성: 구현이 용이함
- 단점: 프록시 서버를 사용하는 인두술과 정교한 스크립트에는 쓸모가 없습니다.
- 단점: IP 주소는 때때로 많은 다른 사용자들에게 매핑됩니다.
레퍼러 확인
한 사용자가 하나의 IP 주소를 매핑한다고 가정하면 해당 IP 주소로 투표할 경우 수를 제한할 수 있습니다.그러나 이 가정은 일반적으로 개인 가구에만 적용됩니다.
- 찬성: 구현이 용이함
- 찬성 : 단순 인두에 어느 정도 효과가 있음
- 단점: 자동화된 스크립트를 통해 매우 쉽게 우회할 수 있습니다.
이메일 확인
전자 메일 확인을 사용하고 전자 메일당 한 표만 허용합니다.데이터베이스가 일회용 전자 메일을 사용하는지 수동으로 확인합니다.
로 수있다니습을 할 수 .+foo
이메일 주소에 있는 사용자 이름으로.username@example.com
그리고.username+foo@example.com
둘 다 동일한 계정으로 메일을 배달하므로 누군가가 이미 투표했는지 확인할 때 이 점을 기억하십시오.
- 찬성: 간단한 스팸 스크립트에 적합합니다.
- 단점: 구현하기 어려움
- 반대: 일부 사용자는 좋아하지 않을 것입니다.
HTML 양식 랜덤화
선택한 순서를 랜덤화합니다.그들이 알아내려면 시간이 좀 걸릴 수도 있습니다.
- 찬성: 어쨌든 있어서 좋습니다.
- 단점: 일단 감지되면 피하기 매우 쉽습니다.
HTTPS
투표 조작의 한 가지 방법은 Firefox와 같은 유효한 브라우저에서 http 요청을 캡처하여 스크립트로 모방하는 것인데, 암호화를 사용할 때는 이 방법이 그렇게 쉽게 작동하지 않습니다.
- 찬성: 어쨌든 있어서 좋습니다.
- 찬성: 매우 간단한 스크립트에 적합합니다.
- 단점: 설정이 더 어렵습니다.
프록시 검사
스팸 발송자가 프록시를 통해 투표하는 경우 X-Forwarded-For 헤더를 확인할 수 있습니다.
- Pro: 프록시를 사용하는 고급 스크립트에 적합합니다.
- 반대: 일부 합법적인 사용자가 영향을 받을 수 있습니다.
캐시 검사
클라이언트가 캐시되지 않은 모든 리소스를 로드하는지 확인합니다.많은 스팸봇들은 이것을 하지 않습니다.저는 이것을 시도해 본 적이 없습니다, 단지 이것은 보통 투표 사이트에서 확인되지 않는다는 것을 알고 있을 뿐입니다.
예를 들어 임베딩이 있습니다.<img src="a.gif" />
html에서 a.gif는 1x1 픽셀 이미지입니다..GET /a.gif
와 함께Cache-Control "no-cache, must-revalidate"
Apache의 http를 할 수 ..htaccess
이렇게 줄을 서세요.(고마워 자코)
- 찬성: 제가 알기로는 흔치 않은 방법입니다.
- 단점: 설정하기가 약간 어렵습니다.
[2010-09-22 편집]
에버쿠키
- 이른바 evercookie는 브라우저 기반 스팸 발송자를 추적하는 데 유용할 수 있습니다.
브라우저 지문 인식을 시도해 보셨습니까?EFF의 이 오픈 소스를 확인하세요: https://panopticlick.eff.org/ 세계 500명의 사람들과 유사한 한 사람을 식별하는 데 사용될 수 있습니다(!).
투표 양식에 캡차를 추가할 수 있습니다.또한 이메일 확인을 요구하는 것도 유용할 것입니다.
만약 당신이 정말로 그것이 걱정된다면, 당신은 대부분의 부정행위자들을 충분히 차단할 수 있는 이메일 확인과 같은 것을 해야 합니다.
또한 NAT을 지원하는 여러 사람이 동일한 옵션(예: 선호하는 학교)에 투표하기를 원하는지 여부에 따라 달라집니다.
생성한 모든 스킴을 게임할 수 있습니다.
편집: 다른 모든 사람들이 제안했듯이, 당신은 자동 봇을 차단하기 위해 reCAPTCHA와 같은 캡차를 사용할 수 있으며, 사람들이 투표를 반복할 가능성을 줄일 수 있습니다.사람들이 투표할 가능성을 조금이라도 낮추게 하는 대가로.
홍보에 대한 투표 패턴(알고 계실지도 모르지만)에는 게임을 완화하는 방법에 대한 섹션이 있지만, 모두 피하기에는 까다로운 패턴입니다.지금까지 당신의 행동을 고려할 때, 저는 가중치를 사용하는 것을 고려할 것입니다. 예를 들어, 시간당 10표(가이드가 아닌 예에 불과함)를 고려하고, 잉여 투표의 경우 다음 10표를 90%(즉, 카운트 9)로 가중치를 부여하고, 다음 10표를 80%로 가중치를 부여합니다.이것은 이 패턴 내에서 게임에 대한 야후의 조언입니다.
지역사회 투표 시스템은 많은 과제를 제시합니다.특히 커뮤니티 구성원들이 다양한 동기에서 시스템 게임을 시도할 가능성:
악의 - 커뮤니티의 다른 구성원과 해당 구성원의 기여에 대한 것일 수 있습니다.
이득 - 풀의 특정 항목 배치에 영향을 미치는 금전적 또는 기타 방법으로 약간의 보상을 실현합니다.)
또는 가장 중요한 의제 - 투표 대상 콘텐츠의 실제 품질에 대해 거의 고려하지 않고 항상 특정 관점 또는 정치적 성명을 홍보합니다.
이러한 유형의 남용을 방지하기 위한 여러 가지 방법이 있습니다.비록 그 어떤 것도 게임을 완전히 멈출 수는 없지만요.다음은 악용자의 노력을 최소화하거나 방해하는 몇 가지 방법입니다.
사람이 아닌 것에 투표하세요.Yahoo의 일반적인 전략에 따라 사용자가 다른 사용자에게 직접 투표할 수 있는 기능(외모, 호감도, 지능 등)을 제공하지 마십시오.공동체가 한 사람의 기여에 투표하는 것은 괜찮지만, 그들의 성격의 질에 투표하는 것은 아닙니다.
투표율 제한을 고려합니다.o 사용자는 지정된 기간 내에 특정 수의 투표만 허용합니다.o 사용자가 특정 사용자의 콘텐츠를 거부하는 횟수(또는 투표하는 속도)를 제한합니다. (애드호미인 공격을 방지하기 위해)
투표수 외에 다른 요소들도 고려해 보세요.예를 들어, Digg는 제출물이 받는 투표 수에만 Digg 점수를 계산하지 않습니다.그들의 알고리즘은 또한 다음과 같이 고려합니다: "스토리 소스(블로그 재게시물 또는 원래 스토리), 사용자 기록, 해당 스토리가 속하는 범주의 트래픽 수준 및 사용자 보고서."그들은 이 알고리즘을 자주 업데이트합니다.정확한 알고리즘을 커뮤니티에 비밀로 유지하거나 요인 입력에 대해서만 일반적인 용어로 논의하는 것을 고려합니다.
관계 정보를 사용할 수 있는 경우 사용자 투표의 가중치를 지정합니다.아마도 공식적인 관계를 가진 사용자들이 서로의 제출물에 투표하는 것을 금지할 것입니다.
이것이 현재 웹에서 인기 있는 패턴이지만, 우리가 그것을 사용하는 상황을 고려하는 것은 중요합니다.공동체 투표를 가능하게 하는 매우 활동적이고 인기 있는 공동체(Digg가 좋은 예)는 정신의 특정 부정성(비열한 논평, 의견 일치, '이상한' 관점에 대한 집단 공격)을 유발할 수도 있습니다.
Asirra: http://research.microsoft.com/en-us/um/redmond/projects/asirra/ 아직 베타 버전이지만 꽤 멋집니다.
봇이 투표하는 것을 방지하기 위해 CAPTCHA를 사용할 수 있습니다.
생각나는 것은 캡차를 사용하는 것뿐입니다.리캡챠 서비스처럼 사진과 소음이 포함된 정교한 서비스나 "7 더하기 3은 무엇입니까?" 또는 (미국에 위치한 경우) "우리 대통령의 성이 무엇입니까?"와 같은 매우 단순하고 눈에 띄지 않는 서비스 중 하나입니다. 모두가 간단한 상식적인 질문에 답할 수 있습니다.자주 변경하면 기존 이미지 기반 CAPTCHA보다 더 효과적일 수 있습니다.
캡차는 은총이 아닙니다. 사용자는 스크립트에서 캡차를 표시하고 분당 최소 몇 표씩 수동으로 해결할 수 있습니다.
여기에 언급된 다른 기술과 함께 사용해야 합니다.
당신은 장고에서처럼 꿀단지를 추가할 수 있습니다.대부분의 경우, 의도적으로 경쟁업체를 변경하려는 부정행위자로부터 사용자를 보호하지는 못하지만, 적어도 추가적으로 처리해야 하는 '드라이브 바이' 스팸 발송자는 줄어들 것입니다.
이중 게시물은 죄송합니다만, 같은 게시물에 두 개의 URL을 게시할 수 없었습니다.
독자적인 추적 기능을 구축하려는 경우 이 링크를 통해 영감을 얻을 수 있습니다. https://panopticlick.eff.org/ 에서는 쿠키를 추적하지 않아도 많은 브라우저를 고유하게 식별할 수 있습니다.제 생각엔 투표봇이 아주 구체적인 지문을 줄 수 있을 것 같은데요?
그래서 만약 모든 사람들이 무언가를 이길 수 있는 대회를 만들고 싶다면, 그리고 지역사회 중심의 평가 시스템을 사용하기를 원한다면...여기 몇 가지 경험을 공유합니다.
나쁜 점:
첫째, 100% 보안이 불가능합니다.
모든 터무니없는 등급을 걸러내는 많은 사용자에게 도달하는 것은 매우 어렵습니다 3) 스타 등급은 잊어버리십시오...그들은 항상 별 5개 또는 별 1개입니다.
더 굿
그들에게 그들이 어디에 서 있는지 방향을 알려주지 마세요."장소별 주문" 보기를 TOP 100의 무작위 프레젠테이션으로 대체했습니다. (상위 30개만 가격을 받을 수 있습니다.)이것은 많은 사용자들이 그들이 어디에 서 있는지 보지 못하자마자 그들의 관심을 잃었기 때문에 정말 도움이 되었습니다.
다음과 같은 투표 허용 안 함: 1x5_Stars 40x1_Star...공정한 방식으로 투표하는 사용자만 허용...
그들 대부분은 약간 바보 같은 행동을 합니다.당신은 그들을 당신의 일지에서 볼 수 있을 것이고 누가 공정하게 투표하고 누가 불공정하게 투표하는지 추적할 수 있을 것입니다.패턴 검색...
**행운을 빕니다 ;-) **
CAPTCHA는 항상 양호하며 일부 사용자에게는 "방해"가 될 수 있습니다.
reCAPTCHA는 상당히 사용되는 서비스입니다.
투표를 제출하기 전에 openid와 reCaptcha로 로그인한 사용자만 허용하고, 동일한 IP 주소로 제출자 목록을 모니터링하는 것은 어떻습니까?
우리는 캡차와 이메일을 함께 사용합니다.사용자는 GUID가 포함된 링크를 메일로 수신합니다.이것은 투표하려는 각 사용자에게 고유해야 합니다. www.votesite.com/vote.aspx?guid=...이 링크를 사용하면 투표가 확정되는지 여부를 확인할 수 있습니다.데이터베이스에서 전자 메일 주소와 GUID의 조합이 고유한지 확인합니다.
저는 CAPTCHA, IP 검증 및 LSO(Flash Local Shared Objects, 일반 사용자에게는 찾기 어렵고 삭제하기 어려운 플래시 로컬 공유 개체)를 함께 사용합니다.
1.recetcha 사용
, 를 무작위로 지정하세요예, 투표옵을무선로택지만다하않같습다하니지는이과음작.
-> vote_id_1은 asdd_1, grdgsdg_2,
대신 세션 변수를 사용하여 투표 양식에서 vote_id_1에서 asgjdas87th2ad까지의 마스크를 설정합니다.
시계열 분석과 같은 사후 확률적 분석은 어떻습니까? - 특정 사건에서 주기성을 찾습니다.(ip, browser, vote)
그런 다음 한 사람에게 속하는 각 사건 그룹에 확률을 할당하고 특정 확률 수준을 초과하는 모든 사건 그룹을 폐기하거나 일종의 가중치를 사용하여 확률에 따라 가중치를 낮출 수 있습니다.
R을 보세요, 그것은 많은 유용한 분석 패키지를 포함하고 있습니다.
사용 중인 전자 메일의 도메인 세부 정보를 확인합니다.저는 같은 문제를 가지고 있었고, 모두 같은 등록자에게 등록되어 있는 것을 발견했습니다.저는 여기에 그것을 썼습니다: http://tincan.co.uk/659/news/competition-spammers.html .
이제 등록에 사용된 이메일의 DNS 정보를 필터링합니다.
언급URL : https://stackoverflow.com/questions/2333054/hunting-cheaters-in-a-voting-competition
'IT' 카테고리의 다른 글
서로 의존하는 서비스 (0) | 2023.08.31 |
---|---|
phonegap/httpova를 사용하는 동안 '노드'가 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다. (0) | 2023.08.31 |
엔티티 관리자.setFlushMode() vs Query.setFlushMode() (0) | 2023.08.31 |
이 스팬을 디브의 오른쪽에 맞추는 방법은 무엇입니까? (0) | 2023.08.31 |
설치된 웹 팩 버전 확인 방법 (0) | 2023.08.31 |