블로그 통계 플러그인을 통해서 상습적인 스패머를 알아내어 막는 방법을 소개합니다. 기본적으로는 akismet이나 bad behavior 플러그인이 거의 모든 스팸을 걸러낼 수 있습니다. 그러니, 스팸이 너무 많아서 도저히 안되겠다 싶은 분들께서만 적용해 보시기 바랍니다.
우선, 아래 소개된 내용은 방문객의 아이피를 차단하는것으로 잘못 스패머 아이피로 등록했을 경우 상당히 난감한 상황에 처할 수 있습니다. 이는 정말로 주의를 요하는 과정임을 알아두시길 바랍니다.
1. 상습 스팸 등록 아이피 알아내기
1-1. Wp-SlimStat-Ex를 통해 알아보기.
- wp-slimstat-ex-pins.zip파일에 포함되어있는(1.1판 이후) miscellaneous-pin.zip의 압축을 풀어 나오는 SS_ETC폴더를 wp-slimstat-ex/pins 폴더에 넣으세요.
- Options > SlimStat 화면에서 “Miscellaneous”를 활성화(activate)시키세요.
- SlimStat 페이지에서 Miscellaneous패널로 이동하면 “Top Comment Spam IP”와 “Top Spam Trackback IP”모듈이 보입니다.
- 특정 기간내의 결과를 보고싶으시다면 상단의 “Today(오늘)”, “Yesterday(어제)”등의 링크를 누르면 그 기간내의 결과를 보여줍니다.
- [spoiler ‘phase”Pin을 사용하지 않고 알아내는 방법”또 다른 방법 감추기’]
- 우선 Details(자세히)패널로 이동합니다.
- 검색어에 “/wp-comments-post.php“를 입력하고, 검색조건에 “Resource(읽은글)“, “Substring(포함한 문자)“를 선택한뒤 검색하세요
- 검색결과 중에서 Top Visitors(방문객 통계)모듈에서 눈에 띄게 많은 횟수의 댓글 달기 시도를 한 아이피를 확인하세요.
- 새창(탭)을 열어 워드프레스의 관리자화면(wp-admin)>관리(Manage)>댓글(Comments) 화면으로 이동합니다.
- 위에서 확인한 아이피들을 차례로 검색해 보세요.
- 검색결과에 아무것도 나타나지 않는다면 댓글 등록을 시도했으나, Bad Behavior와 같은 플러그인에 막혔거나 Akismet에서 스팸으로 분류되어 정상적으로 댓글 등록되지 않았다는 것이겠죠? 하지만 검색결과에 등록된 댓글들이 나타난다면 블로그에 많은 의견을 남겨준 고마운 방문객입니다.
- 2번째 과정에서 Permalinks(고정주소)설정에서 Defalut(기본)주소를 사용하지 않을 경우 “/trackback“으로 기본 주소를 사용할 경우 “/wp-trackback.php“로 검색하신뒤 나머지 과정을 거쳐서 트랙백 스패머의 아이피를 알아낼 수 있습니다.
[/spoiler]
[spoiler ‘phase”다른 통계플러그인을 사용중일 때 방법 보기”다시 감추기’]
1-2. 다른 통계 플러그인을 사용중일때
- 가장 많이 사용하는 Wp-ShortStat을 예로 들겠습니다
- 호스팅 업체에서 제공하거나 직접 설치한 phpmyadmin에 접속합니다.
- 아래의 쿼리문을 실행해 봅니다. 주의! `wp__ss_stats` 에서 테이블 접두사 “
wp_
“는 자신의 블로그에 맞게 입력하세요. - Wp-SlimStat-Ex에서 Pin을 사용하지 않고 아이피를 확인하는 과정을 통해 스패머인지 정상 댓글 등록자인지를 확인하세요.
[/spoiler]
주의!!: 아래 설명에서 사용되는 아이피들은 예를 들기 위해 임의로 적은것 입니다.
직접 입력하실 때는 위 과정에서 파악된 아이피들을 적으셔야 합니다.
2. 상습 스팸 등록자 차단하기
2-1. .htaccess 파일을 이용한 방법
-
.htaccess
를 통해 차단하는 방법은 접근 자체를 막아버리기 때문에
차단할 아이피 선정에 특히 유의 하셔야 합니다. .htaccess
파일은 워드프레스가 설치된 폴더 또는 사이트 루트폴더에 있습니다. 호스팅 업체에 따라 숨김파일로 지정된 경우가 있으니 사용중인 FTP프로그램에서 "숨김파일 보기"기능을 사용해 보시기 바랍니다. Permalinks(고정주소) 설정에서 기본주소를 사용하신다면(http://mydomain.com/?p=123
) .htaccess 파일이 존재하지 않는게 정상입니다.- 2-1-1. 댓글 등록만 막기
.htaccess
파일의 윗부분에 아래와 같이 내용을 추가합니다.Order Allow,Deny Allow from all Deny from 123.456.789 Deny from 198.126.111.222
- 2-1-2. 블로그(사이트) 접속 자체를 막기
블로그 접속 자체를 막는 방법은 스패머가 정말 확실할때만 사용하세요. 글 등록만을 막는것 만으로도 스팸은 막을 수 있습니다.
.htaccess
파일의 윗부분에 등록만 막을때와 같은 내용을 입력하되,
부분을
로 바꿔서 넣으면 됩니다.(잘못적어서 수정했습니다)
2-2. PHP를 이용한 방법
- 호스팅 서버에서
mod_rewrite
를 지원하지 않아AllowOveride
옵션과 관련해서 ".htaccess
를 이용한 방법"을 적용 할 수 없는 분들께서는 대안으로서 워드프레스 파일을 수정하는 방법을 적용하세요. 이미 위에서.htaccess
를 수정해 적용하신 분이라면 이 과정은 필요치 않습니다. - 2-2-1. 댓글 등록만 막기
- 워드프레스 설치폴더 최상단에 있는
wp-comments-post.php
파일의 맨 위에 아래 내용을 추가합니다.주의! (admin at mydomain.com
) 부분에는 자신의 메일주소를 적어야 합니다. -
Sorry, but your remote ip address is in my spam blacklist.
If you are not a spammer, please contact(admin at mydomain.com) me and be sure to provide your remote ip address.'); } ?> - 한글을 사용하려면 파일을
utf-8
로 저장해야 하기 때문에 위 예제에서 오류문구를 영어로 적었습니다. 파일을utf-8
로 저장할 환경이 되시는 분께서는 한글로 오류문구를 작성하셔도 됩니다.
- 워드프레스 설치폴더 최상단에 있는
- 2-2-2. 블로그(사이트) 접속 자체를 막기
- 블로그 접속 자체를 막아버리면 실수로 스패머가 아닌 아이피를 입력했을경우 난감한 상황이 발생할 수 있습니다. 상당히 주의 하셔야 합니다. 스패머 IP가 확실하다고 판단되는 경우에만 적용하세요.
- 방법은 사용중인 테마의
header.php
파일 맨 윗부분에 위 "댓글 등록만 막기"와 같은 코드를 추가하는 것입니다.
사실... 방법을 공개하면서도 어딘지 개운치 않네요. PHP나 .htaccess파일이 생소한 분들께서는 이 방법이 아닌 다른 방법을 이용하시길 바랍니다.
3 responses to “스팸을 막기위한 노력 네번째”
후아~~~꽤 오래전 포스팅이긴 한데요~정말 도움 마니 됐습니다~
DB에 매크로 공격이 들어오고 있었는데 ㅋ ㅠㅠ
덕분에 확실히 차단했습니다 감사합니다.
정태영// 아, 그렇군요. 제가 잘못 알고 있었네요. 글 수정했습니다.
.htaccess 는 mod_rewrite 지원과는 상관 없습니다. 아파치의 AllowOveride 옵션이 .htaccess 와 연관된 옵션입니다.