웹마스터 팁

외국어 스팸 방어

2014.07.01 12:09

DoorWeb

요즘 외국어 스팸이 자주 올라오네요.


그래서 어차피 제 사이트에는 외국어가 올라올 수 없다는 판단에 this,is 이런 단어들을 금지단어로 등록 시켜 뒀는데


이런 금지어들도 this를 약간 다른 조합으로 만드어서 뚫고 들어오더군요.


그래서 자료실을 뒤지다가 보물같은 엘카님의 스펨 방지 에드온을 찾았는데...


요즘 올라오는 스팸들이 링크없는 스펨들이 많다보니 엘카님 에드온이 방어를 못하더군요. 조건에 링크가 있어야 해서...


그래서 조건문에서 링크 부분을 지우고 무조건 한글이 없으면 스펨으로 분류되게 해 봤습니다.


아직은 만족스러운데...


elkha_simple_spam 스펨방지 에드온에서

elkha_simple_spam.addon.php 파일의


<?php
if($called_position!='before_module_proc') return;

// only for controller
if(!preg_match('/^(?:trackback|proc(?:[A-Z][a-z]+)*Insert(?:Document|Comment))/', $this->act)) return;
if($this->grant->manager) return;

$_content = Context::get('content');
if(!strlen($_content)) return;

$logged_info = Context::get('logged_info');
if(isset($logged_info->nick_name))
{
	$nick_name = &$logged_info->nick_name;
}
else
{
	$nick_name = &Context::get('nick_name');
}

$_content .= Context::get('title');
$_content .= $nick_name;

if(preg_match('/[ㄱ-ㅣ가-힣]/u', $_content)) return;
if(!preg_match('#<a\s|https?://#is', $_content)) return;

$email_address = strlen($addon_info->email_address)? "(\n$addon_info->email_address)" : '';

$output = new object(-1, "스팸으로 의심되어 등록이 보류되었습니다.\n관리자 메일주소로 문의주시길 바랍니다.$email_address");
$oDisplayHandler = new DisplayHandler();
$oDisplayHandler->printContent($output);
exit;
?>



에서 25라인 

if(!preg_match('#<a\s|https?://#is', $_content)) return; 를 지워봤습니다.


저랑 비슷한 상황에 있으신 분들 한번 해 보시라고 올려 둡니다.

제목 글쓴이 날짜
php 세션을 memcache에 저장할 때 주의할 점 XE러버 2014.07.04
클리어픽스(clearfix)의 개념과 방법 시니시즘 2014.07.04
XE Core:1.7.5.3 조회수 증가, 자기 게시글 클릭시 조회수 증가 [1] file 때린데 또때려 2014.07.04
에디터 컴포넌트에 현재 mid 값 넘겨주기. [1] 애니즌 2014.07.03
jqm(jQuery Mobile) 사용 시 XE의 CSS 와 충돌할 때 file Canto 2014.07.03
[javascript] 기초강좌 | 4장. 비교제어문(if문) hiwebs 2014.07.02
[javascript] 기초강좌 | 03 논리연산자, 비트, 삼항연산자, 기타연산자 hiwebs 2014.07.02
외국어 스팸 방어 [2] DoorWeb 2014.07.01
[nginx] Rewrite 예외 설정 okiz 2014.06.30
닉네임 중복체크 버그 해결방법 [7] 소렌트. 2014.06.29
BlogAPI 활용하기 file 맞장 2014.06.29
php에서 한글언어 작성이 깨질때 [1] 광개토대왕3 2014.06.28
min.js min.css 정리해서 보기 Happyphp 2014.06.26
관리자가 글 쓸때는 분류를 선택 안 해도 등록되도록 (공지글을 쓸때를 위해) 개선 [2] sejin7940 2014.06.21
XE에서 신디케이션 제거하기 [1] mAKEkr 2014.06.20
상단에 스르르~ 닫기 가능한 배너 달기 [30] file 야옹잉 2014.06.20
관리자페이지에서 콘텐츠->파일 에서 등록된 파일 전체 리스트에 이미지가 바로 나타나도록 [2] sejin7940 2014.06.19
목록에서 이미지 팝업 이용하기 Happyphp 2014.06.19
손님이 비밀글 작성한 직후에도 글 보려면 반드시 비밀번호 넣게 하는 방법 [1] sejin7940 2014.06.18
htm과 html의 차이는 ? 디테일 2014.06.17