스팸글 방지에 대한 고찰
요즘들어 스팸글이 난무하고 있다.
내가 보기에 스팸은 경기에 민감하다.
경기가 좋으면 스팸은 자취를 감추고, 경기가 나쁘면 스팸은 기승을 부린다.
스팸이 난무하고 있다. 그렇다면 지금의 경기는?
암튼 경기가 좋건 나쁘건 우리들은 열심히 코드를 생산해 내야하는게 임무(?) 아니겠는가?
나는 오늘도 열심히(?) 삽질을 한다.
스팸을 완전히 차단하기 위해 나는 MYSQL 의 FULLTEXT 를 사용해 보기로 했다.
http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html
mysql> SELECT id, body, MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root') AS score
-> FROM articles WHERE MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root');
+----+-------------------------------------+-----------------+
| id | body | score |
+----+-------------------------------------+-----------------+
| 4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 |
| 6 | When configured properly, MySQL ... | 1.3114095926285 |
+----+-------------------------------------+-----------------+
2 rows in set (0.00 sec)
내용에 들어있는 자료를 검색하여 산포도를 따져 점수가 높은 것은 아예 글 등록이 되지 않도록 하는 것이다.
1. 게시글이 등록된다. 스팸글인지는 모른다.
2. 회원들이 스팸글로 신고를 한다.
3. 신고시 스팸 테이블에 해당 내용을 저장한다.
4. 다시 유사한 게시물이 등록된다.
5. 스팸 테이블에서 산포도를 검사하여 점수가 높다면 글 등록을 거부한다.
대충 이런 방법으로 구현하고자 했는데 산포도가 내가 생각하는 것처럼 나타나지 않아 포기한다. ㅜㅜ
필터링 이외에는 방법이 없는것인가?
댓글 3개
2. 블랙 IP 공유, 실시간 업데이트
3. 실시간으로 삭제.. 게시판 운영자 지정(신고글에 대해서 게시판 운영자 삭제권한 제공)
4. 스팸공동센터 운영, 센터 차원에서 스패머에 대한 법적 조치
==> 사람이 직접 입력하면 됨.
인건비가 싼 아프리카 지역에 아르바이트 사이트를 개설하여, 캡차 인식 1건당 0.1원으로 인건비를 지급해도 할사람 많음.(하루 천원으로 1만개 등록 가능, 높게 잡아서 1원으로 해도 만원이면 1만개 등록)
(알바는 게시물 등록이 아니라, 캡차 이미지에 해당하는 문자만 입력하면 됨.)
알바 <---> 캡차이미지 사이트 <---> 등록기 로봇 <---> 캡차가 적용된 웹사이트
1. 등록기 로봇이 이미지만 추출하여 캡차이미지 사이트에 등록
2. 알바는 캡자 이미지 사이트 리스트에 등록된 이미지를 보고 문자값을 입력
(아마 한번에 10-100개 동시입력하겠죠)
3. 로봇은 캡차이미지사이트에 입력값을 확인하여, 캡차 적용된 사이트에 값을 입력하여 무력화 시킴
외국엔 이렇게 운영하는 사이트를 본적이 있음.(국내는 잘 모르겠음)
해결책.
- 사람이 벌인일은 사람이 해결하도록 해야함.. 1,2,3,4번 방법들은 모두 사람이 개입해야만 합니다.
MYSQL 의 FULLTEXT 산포도는 영문에서는 지원이 되는것 같은데 한글에서는 영 성능이 좋지 않네요.
저희 사이트에서 비회원의 글쓰기를 열어 놓았는데 전부 사람이 캡챠를 입력하고 글을 썼더라구요.
현재로서는 회원가입 이외에 뾰족한 방법이 없습니다.
게시글 목록
| 번호 | 제목 |
|---|---|
| 20097 | |
| 20095 | |
| 20093 | |
| 20092 | |
| 20091 | |
| 20089 | |
| 20086 | |
| 20085 | |
| 20084 | |
| 20083 | |
| 20082 | |
| 28358 | |
| 20081 | |
| 20079 | |
| 20078 | |
| 20077 | |
| 20076 | |
| 20075 | |
| 20074 | |
| 20073 |
PHP
php환경 변수 출력 입니다.
|
| 20072 |
PHP
PHP팁 (보안 등) 입니다.
|
| 20071 |
PHP
문자열 자르는 함수 입니다.
|
| 20070 | |
| 20069 | |
| 8148 | |
| 20057 |
정규표현식
파싱 예제입니다.
11
|
| 8141 | |
| 24669 | |
| 20056 | |
| 8138 | |
| 28353 | |
| 20055 | |
| 20054 | |
| 20053 | |
| 20052 | |
| 20051 | |
| 20050 |
JavaScript
지난 시간 경과시간 페이스북 sns 처럼 보여주기 javascript 버전
|
| 20047 | |
| 20046 |
PHP
php환경맞춤 부분 입니다.
|
| 20045 | |
| 20044 | |
| 8111 | |
| 20043 | |
| 20042 | |
| 20040 | |
| 20039 |
JavaScript
구글 맞춤검색 설정 방법, google custom search
|
| 20037 | |
| 20036 | |
| 20035 | |
| 20027 |
MySQL
1000만건 게시판에 도전합니다. 두번째
7
|
| 8107 | |
| 31022 | |
| 20026 |
MySQL
Join 을 이용한 delete
|
| 20025 | |
| 20024 | |
| 20023 |
PHP
미리 정의된 변수들 입니다.
|
| 28350 | |
| 20022 | |
| 20018 |
MySQL
1000만건 게시판에 도전합니다. 첫번째
3
|
| 20017 |
MySQL
select 해서 바로 insert하기
|
| 8099 | |
| 20016 | |
| 20013 | |
| 8090 | |
| 20012 | |
| 20010 | |
| 20009 | |
| 19998 |
PHP
텔레그램 푸쉬 봇
10
|
| 28348 | |
| 28347 | |
| 19997 | |
| 19996 |
OS
파일분할 분할압축 해제
|
| 19995 |
웹서버
리눅스백그라운드실행
|
| 19993 | |
| 8087 | |
| 8065 | |
| 19990 | |
| 8063 | |
| 8056 | |
| 19989 | |
| 19988 | |
| 19987 | |
| 19986 | |
| 19985 | |
| 19984 | |
| 19983 | |
| 19982 |
MySQL
mysql에서 boolean 타입 사용하기
|
| 8054 | |
| 19981 | |
| 19980 | |
| 19979 |
MySQL
mysqladmin 상태 모니터링
|
| 19978 | |
| 19977 | |
| 19976 |
웹서버
리눅스 프로세스 검사, 조회
|
| 19975 |
웹서버
리눅스에서 네트워크 상태 보기
|
| 19974 |
웹서버
리눅스 80 포트 방화벽 열기
|
| 19973 | |
| 19972 |
MySQL
Mysql Table 일괄 삭제 방법.
|
| 19971 | |
| 19970 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기