2013-04-25 3 views
3

내가 관리하는 PHP/MySQL 사이트 중 하나는 소셜 네트워크이며 스팸 발송자가 여러 다른 사용자에게 유사한 메시지를 많이 보냈 음을 알았습니다.사용자가 유사한 메시지를 가진 다른 사용자를 스팸하고 있는지 확인하는 방법은 무엇입니까?

동일한 사용자 계정에서 보낸 메시지의 수가 많고 비슷한 메시지가 전송 되었기 때문에 다른 사용자에게 이러한 방식으로 스팸하는 사용자를 상대적으로 쉽게 식별 할 수있는 것처럼 보입니다. PHP/MySQL에서이를 수행하는 방법을 알고 있어야합니다. 메시지는 DB에 유형 TEXT으로 저장됩니다.

이러한 스패머를 식별 할 수 있도록 내가 너무 많은 유사하게 보이는 메시지를 보낼 때 자동으로 제거 할 수 있습니까?

편집 :

스팸 메시지는 일반적으로 텍스트의 최소 단락, 그래서 우리가 안전하게 미만 100 문자 메시지를 무시하고 자동으로 통해 사람들을 할 수 있습니다.

+0

누군가에게 "안녕하세요"라고 말할 수있는 방법은 1000 가지가 아닙니다. p – HamZa

+1

@HamZaDzCyberDeV : 사실이지만 스팸 메일은 일반적으로 텍스트의 단락이므로 메시지를 무시할 수 있습니다 ** 100 ** 미만의 문자로 자동 완성됩니다. – ProgrammerGirl

+1

내 대답은 [여기] (http://stackoverflow.com/a/12768075/) 귀하의 문제를 해결하기위한 소개 수 있습니다. – HamZa

답변

1

다음 방법을 사용하여 게시중인 메시지와 비슷한 메시지를 검색 할 수 있습니다.

SELECT * FROM `messages` 
WHERE MATCH (`messages`.`content`) against ($message) 
&& `messages`.`user` = $user 

현재 사용자의 콘텐츠 중 일부와 일치하는 메시지를 선택합니다.

희망이 있습니다.

3

스팸 메시지는 내부에 링크가 있으므로 링크가없는 메시지는 걸러 낼 수 있습니다.

그리고 먼저 차단하지 않도록 노력해야합니다. 한 사용자가 짧은 시간 내에 많은 사용자에게 많은 메시지를 보내는 경우 아마 많은 사용자에게 스팸 메일이됩니다.

당신은 세션에서 어떤 종류의 카운터를 사용하여 할 수 있습니다. 각 메시지가 새로운 사용자에게 전송 될 때마다 증가시키고 시간당 20 이상인 경우이를 늘릴 수 있습니다. (효율적으로 만들기 위해이 번호를 만들었습니다. 일부 테스트) 스팸이되어 captcha를 요청하거나 15 분 동안 채팅을 차단하고 관리자에게 수동으로 확인하도록보고합니다.

1

이제는 사람이 이러한 발신자 중 어떤 사람이 수락 가능하며 어떤 스패머인지 확인할 수 있습니다. 모든 사람의 메시지를 볼 수있는 인간, 더욱 그렇습니다. 그러나 모든 메시지를 읽고 싶지는 않습니다!

먼저 메시지를 데이터베이스에 추가 할 수 있지만 스팸이 의심되므로 수신자의받은 편지함에는 나타나지 않도록 메시지 플래그 또는 상태가 있어야합니다.

둘째, 스팸이 의심되므로 사용자가 더 많은 메시지를 보내지 못하도록 사용자 플래그 또는 상태가 있어야합니다.

나는 가장 좋은 방법이라고 생각 :

  • 메시지에 세 개의 새로운 DB의 필드를 추가 - 즉, 링크, flagstatus (두 개의 텍스트와 작은 int)를
  • 사용자에게 하나 개의 새로운 필드를 추가 - spamwarnings (int)
  • PHP가 메시지를 추가 할 때 처리합니다. 일반적인 단어 (a, the)와 수신자 이름 및 URL을 필터링하고 words에 고유 단어를 저장하고 links에 고유 링크를 저장하십시오.
  • 메시지가 데이터베이스에 추가 될 때 스팸 테스트 (아래 참조)의 첫 번째 단계를 수행합니다 (PHP에 이미 메시지 텍스트가 있기 때문에 확인하는 것이 좋습니다). 점수가 높으면 자동/수동 검토를 위해 플래그를 지정하십시오.
  • 숨기기 사용자의받은 편지함에서 메시지 및 알림
  • 실행 시간당
  • 인간이 그것을 해제 또는 그것을
을 제거, 스팸 의심 보통 가지고 스팸 점수의 두 번째 패스를 플래그 사용자가 스팸으로 메시지를 표시 할 수 있도록 허용

첫 번째 패스 스팸 점수

  • 은받는 사람이 이제까지 보낸 사람에게 메시지를 보냈습니까? 예 = -10, 아니오 = +2
  • 메시지에 링크가 있습니까? 예를 들면 +2, 각 링크는 +1입니다.
  • 메시지에 특정 '스팸성'단어가 포함되어 있습니까? 각 단어 +1.
  • 보낸 사람은 지난 한 시간 동안 몇 개의 메시지를 보냈습니까? 각 +1.
  • 사용자의 스팸 경고 개수가 2 이상입니까? 점수가 5이면 검토 용으로 플래그를 지정하고 사용자의 스팸 경고 수를 증가시킵니다.

두 번째 패스 스팸 점수

  • 이이 페이지의 다른 아이디어의 조합을 사용하여 동일한 보낸 사람이 다른 플래그가 지정된 메시지에 플래그가 지정된 메시지를 비교 할 부분입니다.

인간의 절제

  • 나는이 피할 수있는 방법을 볼 수 있지만, 위의 읽을 수있는 메시지의 수를 줄일 수 있습니다. 또한이 작업은 고유 한 단어와 링크를 읽는 것에서 만 수행 할 수 있습니다 (개인 정보 보호 유지).

또한 위의 구조를 사용하여 부적절한 콘텐츠에 대한 메시지를 검토 할 수 있어야합니다.