블로그 광고 댓글 차단 시스템 도입기

광고 댓글과의 전쟁 기록..
Posted on 2023-05-18 by GKSRUDTN99
Django로 웹사이트 만들기 Django Akismet

처음에는 새롭게 알게 된 내용이나 막혔던 부분을 두 번 찾아보지 않도록,

대충 남겨나 놓자는 생각에 시작한 블로그였습니다.


그래서 그때는 설마 누가 와서 보겠나 하는 마음에,

나만 알아볼 수 있으면 되지 하는 생각으로 글을 썼습니다.


그런데 블로그 글이 하나 둘 쌓이다보니, 이왕 쓰는 거 다른 사람들도 보면 좋겠다는 욕심이 생겼어요.

내가 만든 코드를 보고, 배우는 사람이 있었으면 좋겠다는 생각이 들더라구요.


그렇게 생각하고 난 뒤부터는 글도 이해하기 쉽도록 쓰려고 노력하고 있지만,

책만 보고 따라 만들었던 블로그다 보니 조회수를 셀 수 있는 기능도 없었고,

댓글도 회원가입한 사람들만 쓸 수 있었어요.


자연스럽게 읽은 사람들과 소통하고 싶다는 생각이 들었죠.

그 중에서도, 질문하고 묻고 소통할 수 있는 댓글이 제일 좋겠다 싶었습니다.


댓글 기능이 없던 것은 아니었지만,

솔직히 생각해서 이런 의심스러운(?) 블로그에 로그인까지 해가면서 댓글을 남길 사람이 누가 있겠나 싶었습니다.


그래서, 로그인을 하지 않고도 댓글을 달 수 있도록, 익명 댓글 기능을 추가했습니다.


그리고, 그 결과는..

수 많은 봇 광고 댓글들..



첫번째 시도

익명 댓글을 남길 수 있는 다른 커뮤니티들을 참고해서,

익명 댓글의 수정 / 삭제 기능도 더할 겸,

비밀번호를 함께 입력해야 댓글을 남길 수 있고, 수정 / 삭제를 비밀번호를 통해 할 수 있도록 구현했습니다.


결과 → 처참한 실패



두번째 시도

Captcha를 정복한 자, 세계를 지배할 것이다라는 격언을 참고해,

Google Captcha를 통한 봇 필터링 기능 추가.


약 3달 정도는 악성 댓글이 거의 달리지 않는 듯 했다가,

어느 순간부터 이전과 같은 빈도로 악성 댓글이 달리기 시작했습니다.


결과 → Captcha까지 뚫어버린 댓글 봇들을.. 나 따위가 막을 수 있나 싶은 생각이 들기 시작



세번째 시도

Chat GPT 선생에게 물었다. 어떻게 막을 수 있나요.

🖥️ : 스팸 필터링 라이브러리 사용하기: Django에는 스팸 필터링을 위한 다양한 라이브러리가 있습니다. 예를 들어, Django Antispam이 있습니다. 이러한 라이브러리를 사용하여 댓글을 분석하고 스팸으로 판단되는 댓글을 차단할 수 있습니다.

끝까지 개발이 안 된 라이브러리인지, 내가 잘못 사용한 건지는 알 수 없지만.. 하루만에 뚫려버리며 실패.

~~이때쯤 SSL 인증서도 만료돼서, 블로그 그냥 내려버릴까 고민했습니다.~~



마지막 시도

이번에도 안되면 블로그를 내리겠다고 결심했습니다.

Django Antispam 라이브러리 문서를 보면서,

워드프레스 회사에서 제공하는 Akismet이라는 스팸 필터링 API가 있다는 것을 발견했습니다.


블로그에 아직 광고도 없겠다,

수익 목적이 아니면 무료인데다,

설치도 쉬워보여서 마지막으로 도입해보기로 했습니다.


도입한지 3일 정도 경과되었는데, 하루에 200개씩 달리던 댓글이 하루 1개 정도로 줄어들었습니다.


댓글을 달 때의 IP와 User-Agent, 그리고 내용을 보내주면 스팸 댓글 여부를 알려주는데,

이 정보를 바탕으로 댓글 요청을 처리하고 있습니다.



후기

Akismet의 정확도가 100%는 아니라, 한달에 한 번 정도는 주기적으로 관리해야 할 것 같긴 하지만,

99%이상 줄어든 결과에 일단 만족 중입니다.


이런 댓글이 많이 달리면 구글 검색 인덱싱에 불리해진다고 하니,

저처럼 광고 댓글에 고생중이신 분들은 Akismet 이용해 보시길 추천드립니다.


시간이 없어서 과정만 설명한 글이었는데, 시간이 된다면 구현 과정도 정리해서 글로 써보겠습니다.

감사합니다.