간단 스팸글 차단 > 그누보드5 팁자료실

그누보드5 팁자료실

간단 스팸글 차단 정보

간단 스팸글 차단

본문

* 글 작성시간이 3초 이내인 경우, 스팸글로 판단/처리하는 방법입니다.

 

* 게시판 [스킨] 폴더에 적용하는 방법입니다.

 

* 실제 효과가 있는지는 아직 확인해보지 못했습니다.

 

1) 사용하는 게시판 스킨 디렉토리의 write.skin.php 파일에 히든필드를 추가합니다. (w_time)


<input type="hidden" name="page" value="<?php echo $page ?>">

->


<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="w_time" value="<?php echo time() ?>">

 

2) 사용하는 게시판 스킨 디렉토리에 write_update.head.skin.php 파일을 다음의 코드로 생성합니다.


<?php
if (!defined("_GNUBOARD_")) exit; 
 
if (!$w_time)
    $w_time = time();
 
if (time() - $w_time < 3)
    alert('비정상적인 접근입니다.');

 

※ 관련글

간단 스팸글 차단 #2 - https://sir.kr/g5_tip/16141

추천
11

댓글 11개

if (!$w_time)
    $w_time = time();
 를
if (!$w_time)
    alert('비정상적인 접근입니다.');

로 하셔도 좋을것 같습니다.
스팸광고가 프로그램형태로 작성되는경우가 많아서 스킨을
타고 글쓰기가 아닌경우도 많아서 기본 그누값외에
임의의 hidden값을 체킹해주면
잘 등록이 안되는편입니다.
조금은 달라 보이네요... 그누보드에 적용된 기능은 짧은 시간내 연속쓰기 체크고
적어주신 분의 아이디어는 하나의 글을 쓸 때 짧은 시간에 쓰는지 여부를 체크한 듯...
적용방식은 다르게 보일수 있지만, 결과적으로 목적은 같은 코드입니다.
그리고, 그누보드에 적용된 코드가 write_update.head.skin.php 파일로 적용한 코드보다 먼저 실행되기때문에 경우에 따라서 적용이 안될수 있고 폼방식이라 변조가 가능한 부분도 있습니다.
조금 다른 기능입니다.

그누보드의 기능은,
A글이 DB에 등록된 이후, B글이 DB에 등록되기까지의 시간을 체크 기능이고,
(ex. A글 등록 이후, B 글을 30초 이내에 등록하면 불가 안내)

위 기능은,
A글 등록 폼 페이지가 열린 후, DB 에 등록되기까지의 시간 체크 기능입니다.
(ex. A글 등록폼을 연 이후 저장되기까지 3초 이후 -> 등록 O
A글 등록폼을 연 이후 저장되기까지 3초 이내 -> 등록X )

그누보드의 기능으로는..
1시간 주기로.. A글 등록 -> 1시간 후 -> B글 등록 -> 1시간 후 -> C글 등록 스팸글을 막을수 없고..

위 기능으로는..
A글 -> 작성시간이 3초 이내면 스팸, B글 -> 작성시간이 3초 이내면 스팸, C글 -> 작성시간이 3초 이내면 스팸 처리됩니다.
(대체로 스팸등록기 프로그램으로 진행되기 때문에 작성시간이 3초 이내이거나 바로 ~update.php 로 등록되는 경우를 체크할 수 있습니다.)

폼 방식이라.. 우회할 수 있는 방법이 있기는 합니다만, 대체로 스팸등록이 자동화 프로그램에 의해 진행되기 때문에, 자동화 프로그램을 커스터마이징하지 전까지는 효과가 있을 수 있습니다.
해당 팁에 대해서 개인적으로 약간 부정적인 견해를 가지고 있고, 오류가 적은 비슷한 기능이 그누보드에 이미 적용되어 있다는 정도로 언급 했어야한것 같네요...

적용 시나리오에 대한 차이점은 팁을 올려주신분께서 자세하게 설명을해주셨네요

개인적인 부정적인 이유에 대해서 정리하자면,

1. 변조가 가능하다는점
  - 세션 및 난독화하는방법도 있음

2. 일정간격(5초)이상 할 경우 다른 행동패턴(글작성후 복사&붙여넣기)에 영향을 주는점

3. 시간 간격을 무력화하기 쉬운점
  - 자동화 프로그램의 경우 행동에 대한 시간 간격 추가 기능 및 개발용이, 캡챠로 인해서 반수동으로 작성되는 경우도 보고됨
  - 통신상태에 따라서 자동으로 설정시간 우회될수 있음

결론적으로, 캡챠가 무력화 된상태라면 약간의 도움을 받을수 있을수도 있습니다.


추가로 개인적으로 적용하는 스팸필터 전략입니다.

1. 기본 소양
  - 관리자의 지속적인 모니터링
  - IP대역 필터는 최소한(ISP, VPN 등)으로 해야한다.

2. 서비스지역이 국내의 경우
  - 국내 IP 대역 POST 전송만 받게 설정(일부호스팅에서 지원됨)

3. 글쓰기 후 글의 공개상태에 따라서 캡챠 적용
  - 공개상태: 캡챠적용, 아이피 필터 or 아이피 필터 기반 상태 제어, 금지어 기반 상태 제어
  - 비공개상태: 아이피 필터
제 개인적인 경험으로는 이 방식에 크게 공감합니다! ^-^

그누보드 관련하여 Python Requests 모듈을 이용한 수많은 봇이 있는데,
짧은 시간 내에 1개의 사이트에 다수의 글을 작성하는 봇도 물론 존재하지만
그렇지 않은 봇이 더 많은 것으로 생각됩니다.
예컨대 광고 봇의 경우에는 1개의 게시판에 1~2개의 글을 올리고
다른 사이트로 넘어가는 경우가 많습니다 ^^
포인트 획득 목적의 봇도 도배를 하지 않는 경우가 대부분이구요.
(포인트 획득 봇이 도배를 하면 빠른 시일 내에 차단당하겠죠.)

그리고 봇 개발자들은 Selenium이 아닌 Requests를 이용하는 경우에는
특별한 사정이 없는 이상 time.sleep()을 잘 사용하지 않는 경향이 있습니다 :)

무엇보다도 봇을 자체적으로 작성하거나 수정하는 사람이 아니라면
위와 같은 차단방식에 쉽게 대응하지 못할 것으로 생각됩니다.
봇은 기본적으로 그누보드에 적용된 방어 메커니즘을 뛰어넘게 작성되지만
이런 방식의 커스텀(방패)에 대응하는 봇(창)은 또 다른 커스텀이 필요하게 되죠 ^^
글 작성 시간을 체크해봤습니다
3초는 너무 짧고, 회원 로그인 상태에서 제목과 내용을 간단하게 1111 이라고만 적어도 10초 가량이 걸리네요
스팸 대응에 무척 요긴하게 작동하리라 생각됩니다
감사합니다
전체 2,411 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT