때문에 테이블 구조도 많이 바뀝니다. 그 중 새로 추가된 정수형 필드, block, spam, link, 이렇게 세 가지가 스팸처리와 관련된 것입니다. 여기서 spam은 NP_Blacklist 플러그인을 통해 조회해 보는 필드입니다. 만일 스팸으로 간주되면 ‘1’, 아니면 ‘0’으로 설정됩니다. link 필드는 트랙백을 보내온 쪽의 URL을 조사하여 내 글의 링크가 포함되어 있으면 ‘1’, 아니면 ‘0’으로 설정됩니다. 이 두 가지 결과를 토대로 차단(block)할 것인지 여부를 결정하여 block 필드에 ‘0’, 또는 ‘1’을 넣습니다. 물론, 혹시라도 스팸 글이 아님에도 불구하고 차단되는 경우를 대비하여 관리페이지에서 이를 수동으로 고칠 수 있도록 되어 있습니다.
이 트랙백 플러그인은 기본적으로 UTF-8 인코딩을 사용하므로, 자신의 블로그가 UTF-8을 사용한다면 수정 없이 그대로 쓸 수 있습니다. 다른 인코딩으로 된 트랙백핑이 들어올 때도 자동으로 UTF-8로 변환합니다. 따라서, 대부분의 경우에는 아래에서 소개할 수정판을 사용하지 않더라도 별다른 지장이 없습니다.
하지만, 트랙백핑을 보낼 때도 무조건 UTF-8로 보낸다는 점이 약간 거슬립니다. 이 점을 약간 보강하고 여기에 보낸 핑을 기록하는 기능을 추가해 보았습니다.
테이블 구조가 많이 바뀌므로 트랙백 데이터를 포기하고 새로 설치하든지, 아니면 약간 번거로운 작업을 해 줘야 합니다. 이는 수정판이 아닌 원판 역시 마찬가지입니다. 지난 데이터를 그대로 살리면서 설치한다는 가정하에서 설치하는 과정을 정리해 보겠습니다.
-
만일의 사태에 대비하여 데이터베이스를 백업 받습니다. 과정을 잘 이해하고 있고, 자신이 있다면 이 과정은 생략해도 됩니다.
-
NP_Blacklist 플러그인이 설치되어 있어 있어야 합니다. 아직 설치되어 있지 않다면
이 곳을 방문하여 지시에 따라 설치합니다. 특히 압축을 풀어 나오는 README.txt를 잘 읽어보고 하위디렉토리의 퍼미션을 적절히 변경해 주어야 합니다.
-
현재 사용하던 트랙백 플러그인을 삭제합니다. 이 때 옵션을 살펴보고 플러그인을 삭제하더라도 테이블은 남아있도록 되어 있는지 확인합니다. 지난 데이터를 지우고 새로 설치하는 경우라면 테이블도 함께 지워지도록 합니다.
-
데이터베이스에 접속하여 다음과 같이 테이블을 수정합니다. 두 개의 쿼리문입니다.
mysql> ALTER TABLE nucleus_plugin_tb DROP PRIMARY KEY;
mysql> ALTER TABLE nucleus_plugin_tb
ADD id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
ADD block TINYINT(4) NOT NULL,
ADD spam TINYINT(4) NOT NULL,
ADD link TINYINT(4) NOT NULL,
MODIFY url TEXT NOT NULL,
MODIFY title TEXT,
MODIFY blog_name TEXT;
id, block, spam, link 필드를 추가하고, url, title, blog_name 필드의 속성을 변경해 준 것입니다. 물론, 지난 데이터를 깨끗이 지우고 새로 설치하는 경우에는 이 과정이 필요 없습니다. 어쨌든 테이블이 다음과 같아져야 합니다.
-
-
관리페이지에서 플러그인을 등록하면 좌측 하단에 다음과 같이 관련 메뉴가 생깁니다.
이 고유한 메뉴를 통해 트랙백을 편리하게 관리할 수 있습니다.
-
문제 없이 설치되었다면 플러그인 옵션을 변경해 줍니다. 다음 그림은 저의 설정화면입니다.
예전과 달리 출력관련 코드가 템플릿으로 보기 좋게 빠져 있다는 점을 알 수 있습니다. 여기서 맨 마지막 옵션은 수정판에만 있는 것으로 트랙백 보낸 기록을 보여줄 것인지 정해줍니다. 이 옵션을 켜면, 글 작성 및 수정 양식에 다음과 같은 항목들이 추가됩니다.
Encoding 이하가 새로 추가된 것입니다. Encoding 은 트랙백을 보낼 때 UTF-8로 보낼 것인지 EUC-KR로 보낼 것인지 선택하는 항목입니다. 그 아래 두 개의 항목은 어디로 트랙백 보냈는지 기록하기 위한 항목입니다. 트랙백 보낸 곳을 본문에 표시하고 싶다면 스킨이나 템플릿의 적당한 곳에 <%TrackBack(target)%> 를 넣어주면 됩니다. 다음 그림에서 박스 안의 내용을 참고하세요.
스팸 트랙백은 관리페이지에서 확인할 수 있습니다. 다음은 실제로 제 블로그에서 NP_Blacklist의 규칙에 걸려 스팸으로 차단된 트랙백 스팸들입니다.
이들 스팸머들의 IP를 확인하여, 아예 IP를 차단하려면 NP_Blacklist의 로그를 확인하면 됩니다.
다시 한번 강조하지만, 굳이 제가 수정한 플러그인을 사용하지 않더라도, EUC-KR 인코딩을 사용하는 블로그에 트랙백을 보내는 경우만 아니라면 별문제 없이 사용가능합니다. 제가 수정한 내용이 필요하신 분만 받아서 설치하시기 바랍니다. 수정한 내용은 쉽게 알 수 있도록 모두 주석으로 표시를 해두었습니다. 사용상의 문제점이 발견된다면 코멘트를 달거나 메일로 알려주시기 바랍니다.