문제

귀하의 사이트가 익명의 스패머에 의해 악용되는 것을 방지하는 메커니즘을 알고 있습니까?

예를 들어, 사람들이 무언가에 투표할 수 있는 사이트가 있다고 가정해 보겠습니다.하지만 나는 ~하지 않다 누군가가 맨 위로 스팸을 보내길 원합니다.그래서 저는 (a) 계정을 만들고 한 번만 투표할 수 있도록 허용하고 (b) 스팸을 줄이기 위해 CAPTCHA를 발견했습니다.당신이 알고 있는 다른 방법은 무엇이고 그 방법이 얼마나 효과가 좋은가요?

도움이 되었습니까?

해결책

제가 깨달은 가장 큰 점은 무엇을 하든 시스템이 독특해지기를 원한다는 것입니다.공격자가 거의 모든 곳에서 작동하는 기존 스크립트를 단순히 던지는 것이 아니라 특정 사이트에 맞게 자동화 프로그램을 조정해야 합니다.암호화 방식으로 안전할 필요도 없습니다.단지 귀하의 사이트를 표준과 약간 다르게 만들기만 하면 됩니다.

이는 사전 구축된 보안 문자 위젯과 같은 것을 사용할 수 없거나 사용해서는 안 된다는 의미는 아닙니다.절대적으로 그 중 하나를 출발점으로 사용하십시오!이는 표준을 벗어나는 추가 작업이 발생하고 일반적으로 이를 무력화할 수 있는 기존 스크립트를 깨뜨릴 수 있도록 어딘가에서 사용자 정의해야 함을 의미합니다.

귀하의 사이트가 공격자가 이를 구체적으로 표적으로 삼을 만큼 충분히 커지면 귀하의 간단하고 작은 사용자 정의는 아마도 더 이상 유지되지 않을 것이며 좀 더 특별한 작업을 수행하고 실제 암호화 등에 대해 생각해 볼 수도 있습니다.그러나 그것은 "좋은" 문제 중 하나입니다.

다른 팁

alt text

에서 xkcd

CAPTCHA 시스템의 경우 진심으로 권장합니다. reCAPTCHA.

전통적인 컴퓨터 생성 CAPTCHA는 결국 망가진다 충분히 지능적인 시스템을 개발함으로써.예를 들어, 여기 누군가가 있어요 이전에는 깨지지 않는 것으로 간주되었던 Google CAPTCHA를 30%의 적중률로 깨뜨렸다고 주장하는 사람입니다.reCAPTCHA는 정의상 광학 문자 인식으로 인식할 수 없는 이미지만 표시합니다.

동시에 사용자의 노력은 공익을 향한 것입니다. 자동으로 인식할 수 없는 단어를 인식하여 책을 디지털화하는 데 도움을 줍니다.

보다 여기 더 자세히 설명하고 사용해 보세요.

  • 시간당 IP 주소당 투표 수를 제한합니다.
  • 익명화 프록시를 차단합니다.
  • 투표용:"세션별로" 양식에서 반환해야 하는 값을 섞는 것은 어떻습니까?"1"은 첫 번째 항목을 의미하고 "2"는 두 번째 항목을 의미합니다.그러면 "77"은 첫 번째 항목을 의미하고, "812"는 두 번째 항목을 의미하고...배후에는 몇 가지 간단한 수학이 있을 수 있지만 이는 사용자가 동일한 HTTP 쿼리를 반복해서 보내는 것을 방지합니다.
  • 나에게 매우 효과적이었던 것은 무엇입니까?단순한 HTTP 양식이 아닌 AJAX 양식을 사용하십시오.기술적으로 투표를 위조하는 것은 그다지 복잡하지 않지만 간단한 블로그 소프트웨어를 작성했으며 유일한 SPAM 보호 메커니즘은 AJAX를 통해 댓글을 제출하는 것입니다. 지금까지 스팸은 없습니다.

나는 "숨겨진 필드" CAPTCHA의 팬입니다.어디서 읽었는지는 기억나지 않지만 아이디어는 이렇습니다.

  • 정상적으로 양식을 작성하십시오
  • 추가 필드를 추가하되 숨기세요(예: style="display:none" 주변 div 또는 테이블 행)
  • 제출 후 해당 필드가 비어 있으면 적절한 작업(예: 이메일 보내기)을 수행합니다.필드가 채워져 있으면 로봇 제출자입니다.

이 문제가 발생하는 유일한 경우는 사용자의 브라우저가 CSS를 처리하지 않거나 CSS를 끈 경우인데, 이는 매우 드뭅니다.

일부 텔레비전 "탤런트" 쇼에서처럼 투표에 대한 비용을 청구하면 은행까지 스팸 메일을 받게 됩니다!

진지하게, 이것은 정말 어려운 문제이며 언젠가(Ray Kurzweil의 말을 들으면 곧) 컴퓨터가 인간을 선별하기 위해 테스트를 수행할 것입니다.목록에 추가하는 답변에는 명백한 단점이 있지만 열거를 위해서만 다음과 같습니다.중재(사람이 테스트 수행) 및 IP 기반 추적(호스트의 투표 수 제한).

stackoverflow에는 이에 도움이 되는 몇 가지 기능이 있습니다.여러분이 취할 수 있는 가장 유용한 조치는 익명 사용자와 새 계정의 투표 기능을 비활성화하는 것입니다.이렇게 하면 누구도 수백 개의 계정에 가입하고 한 표를 사용하여 다른 사용자를 압도할 수 없습니다.몇 개의 게시물을 요구하거나 특정 기간 동안 멤버십을 요구하는 것은 모두 괜찮은 선택이라고 말하고 싶습니다.

어떤 사람들은 이 문제를 해결하는 데 도움이 되도록 IP 주소당 하나의 투표를 허용할 수 있다고 말합니다. 그러나 저는 거의 무한한 수의 프록시를 사용하는 악의적인 사용자가 IP 주소 기반 보안을 무시하는 게임을 많이 해왔습니다.이는 억지력이기는 하지만 능숙한 사용자라면 쉽게 피해갈 수 있습니다.

이 연구 분야는 인간 컴퓨팅.

여기에 Luis von Ahn의 훌륭한 비디오가 있습니다:http://video.google.com/videoplay?docid=-8246463980976635143

에 대한 답변에는 몇 가지 아이디어가 있습니다. 이미지 기반이 아닌 최고의 CAPTCHA? 아직 보지 못했다면 질문하세요.

나는 일반적으로 다음 두 가지를 조합하여 사용합니다.익명 사용자는 모든 것을 자유롭게 검색할 수 있지만 투표를 하려면 등록을 해야 합니다.

등록 과정에서 상황에 따라 메일을 통한 옵트인(등록을 완료하고 최소한 사서함이 존재하는지 확인하기 위해) 및/또는 CAPTCHA를 사용합니다.

그 시점부터 사용자가 두 번 이상 투표할 수 있는지 또는 다른 규칙을 결정할 수 있습니다.

그런데 저는 IP 기반 제약 조건을 좋아하지 않습니다.대규모 조직의 네트워크는 모든 사용자에 대해 적은 IP를 사용하는 상황이 많기 때문에 투표할 수 있는 사용자를 차단할 위험이 높습니다.

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