2009-04-09 3 views
3

방법은 다음과 같습니다 추론이 스팸/봇을 발견 (포럼에서, 블로그 등) 내가 생각할 수있는

  1. 액션 사이의 시간을 측정합니다.
  2. 게시물의 내용을 비교합니다 (서로 너무 유사하다면). 게시 된 링크 만 비교하십시오.
  3. 사용자가 활성 상태 인 동안 배포를 확인합니다 (사용자가 활성 상태 인 경우 매주 한 번 게시, 일주일 동안 게시 한 다음 여기에 수퍼맨 또는 봇이 있습니다).
  4. stackoverflow에서와 같이 사용자가 새로운 답변, 댓글, 질문 등을보기 위해 사용자 이름 링크 (상단 중간)를 누르길 기대합니다.
  5. (chakrit 추가) 게시하다.
  6. 휴리스틱 아님. 사용자 로그인을 위해 일부 비동기 JS를 사용하십시오. (그냥 봇 프로그래머의 삶을 조금 더 어렵게 만든다.)
  7. (Alekc에서 추가) 휴리스틱 아님. 사용자 에이전트 값.
  8. 그리고 어떻게 Will Hartung이 언급 한 Google의 접근 방식을 잊어 버릴 수 있습니까? 사용자에게 누군가를 스팸으로 표시 할 수있는 능력을 부여하십시오. 스팸 투표 란 스팸 사용자임을 의미합니다. (충분한 사용자가 무엇인지 계산하는 것은 여기에있는 작업입니다).

더 이상의 아이디어가 있습니까?

+0

실제로는 대답이 아니지만 .ru 및 .cn의 서브넷을 블랙리스트에 올리면 댓글/포럼 스팸의 상당 부분을 줄여 보았습니다. 그런 나라의 독자가 없다면. – NoCarrier

답변

4

나는 봇 제작자의 지능을 과소 평가했을지 모르지만, 숫자 6은 어떤 반 괜찮은 봇 제작자에게나 완전히 쓸모가 없습니다. C# 브라우저 컨트롤을 사용하여 봇을 생성하면 쓸모가 없습니다. 그 유형의 소프트웨어에서 보았던 것에서는 꽤 일반적인 접근 방식입니다.

사용자 에이전트에서 유효성 검사를하는 것은 유효한 웹 브라우저 인 것처럼 보이는 봇에서 비롯된 모든 블로그 스팸도 거의 사용하지 않습니다.

많은 블로그 스팸을 사용합니다. 저는 문자 그대로 하루 수백 건의 의견을 삭제할 것입니다. 나는 reCaptcha를 사용했고, 이제는 한 달에 1 달을 보게 될 것입니다.

정말 이런 식으로하려고하면. 나는 다음을 시도함으로써 시도 할 것이다 :

사용자는 URL을 게시 할 능력이 없기 시작한다.

게시물의 X 개를 스레드의 다른 게시물과 관련하여 분석 한 후 게시 URL에 대한 액세스 권한을 부여합니다.

사이트의 사용자 활동, 게시 품질 및 기타 필요한 요인으로 인해 본 사용자 IP의 평판을 얻게됩니다.

그런 다음 동일한 서브넷에있는 IP 및 다른 IP의 평판을 기반으로 원하는대로 다른 결정을 내릴 수 있습니다.

그건 처음 생각했습니다. 희망이 도움이됩니다.

+0

+1 제한 아이디어 새 사용자가 게시 URL에서 내 개인적인 경우에 아주 좋은 것입니다. 그것의 보편성에 관해서 확실하지 않습니다. –

3
  • 게시물의 링크 수.

나는 어딘가에서 Akismet의 링크를 주요 발견 적 방법 중 하나로 사용한다고 생각합니다.

내 블로그의 대부분의 스팸 댓글에는 10 개의 링크가 포함되어 있습니다.

말하기 ... 당신은 단지 Akismet API을 확인하고 싶을 것입니다. 그들은 매우 효과적입니다.

+0

+1. 게시물의 링크는 꽤 좋은 것입니다. 다시 말하지만 Spamhaus.org에서 블랙리스트를 가진 사람들을 참조 할 수 있습니다. –

1

게시물 본문에서 스팸 관련 키워드를 검색하는 방법은 어떻습니까?

휴리스틱하지만 효과적인 방법 : APIs을 사용하여 StopForumSpam에 게시 된 통계를 최신 상태로 유지할 수도 있습니다.

1

페이지 방문 간 시간은 일반적이라고 생각합니다.

내 개인 사이트에 댓글 섹션을 추가해야하며 사람들에게 이메일 주소를 제공하도록 요청하고 있습니다. 그들에게 "의견 게시"링크를 이메일로 보내 드리겠습니다.

당신은 그들이 스팸 블랙리스트 IP 주소에서 왔어요 여부를 확인 할 수 있습니다

내가 4 ° 지점에 대한 몇 가지 의심이

+0

Spamhaus는 유망 해 보입니다 :-) ...하지만 블랙리스트 및 프록시에 대한 나쁜 경험을 조용히 해왔습니다. :-( – chakrit

0

(http://www.spamhaus.org/ 참조), 어쨌든 나는 또한 사용자 에이전트를 추가합니다. 가짜는 꽤 쉽지만, 내 경험에 따르면, 봇의 약 90 %가 Perl을 UA로 사용하고 있습니다.

+0

4 .. 이것은 경험적이며 구현하기가 가장 어렵지만 스팸 필터 (사이트에서 사용자 행동을 추적하는 시스템)와 같은 시스템에서 얻을 수 있습니다. –

+0

그래, 행동 패턴을 추적합니다.스택 오버플로가 발생하면 프로필을 클릭하지 않고 질문을 탐색 할 수 있습니다. – Alekc

1

another answer은 Akismet을 사용하여 내가 완전히 보증 한 스팸을 탐지하도록 제안합니다.

그러나 블록에서 유일한 플레이어는 아닙니다.

Akismet과 동일한 휴리스틱 스뿐만 아니라 동일한 API (다른 URL과 API 키, 호출 구조가 동일 함)를 사용하는 TypePad AntiSpam이 있습니다. 그들이 거의 Akismet과 같은 접근법을 취한다고 말하는 것이 안전 할 수 있습니다.

Project Honeypot을 확인할 수도 있습니다. 내가 말할 수있는 것부터 사용자의 IP 주소를 기반으로 조회를 수행 할 수 있으며, 알려진 악의적 인 IP 일 경우 알려줄 것입니다 (수확기 또는 비슷한 것).

마지막으로 LinkSleeve을 확인하면 다른 방법이라고 주장하는 내용으로 스팸 덧글에 접근 할 수 있습니다. 기본적으로 주석에서 링크되는 링크를 확인하고 링크가 연결될 위치를 기준으로 결정합니다.

+0

허니팟은 오히려 너무 적극적으로 필터링합니다. 내 ISP의 프록시 주소가 목록에 포함 되었기 때문에 내 웹 사이트에서 한 번 차단되었습니다. 완전히 나를 괴롭 히고 있습니다 .-(... 어쨌든 +1합니다 .-) – chakrit

0

나는 당신이 최고 SEO 키워드의 명부를 얻을다는 것을, 그 키워드를위한 내용을 검사하는 어떤 종류의 webservice가 확실하다. 콘텐츠가 키워드가 풍부하면 스팸으로 의심됩니다.

1

최고의 추론을 잊지 마세요. 사용자가 클릭 할 수있는 "스팸보고"버튼. 그 외에는 관리자가 누락 될 수있는 항목에 대한 룰베이스를 업데이트 할 기회를 제공합니다. 물론 불쾌한 게시물과 사용자를 삭제할 수도 있습니다.

+0

사용자가 여러 번 투표하도록하거나 익명 사용자에게 투표를 허용하게하는 악의적 인 사용자가 악의적 인 사용자가 동의하지 않는 사람들을 침묵시킬 수있는 경우 가장 분명히 남용 벡터가 될 수 있습니다. 이를 방지하려면 수동 검토 (신뢰할 수있는 사용자가 가능할 수도 있음) 또는 적어도 항소 프로세스를 고려하십시오. – aem

관련 문제