웹마스터 팁
영문 스팸 방지
2013.09.16 15:04
하도 스팸이 많이 들어오고 있어서 꼼수를 좀 썼습니다.
일단 영문으로만 스팸이 들어오고 있어서 영문으로만 된 컨텐츠인지 확인하고 밀어내기 신공을 했습니다.
modules/board/board.controller.php 파일의 procBoardInsertDocument 함수를 수정했습니다.
일단 잠잠해져서 다행입니다만...
이글을 본 스패머가 또 뚫을려나요.. ^^;;
아래 빨간색 부분을 추가해 보세요. 저도 구글로 퍼서 한거여서 자세한 검증은 하지 않았습니다.
고수분들이 업그레이드를 해주시면 더욱 좋겠네요.
단점 : 영문 사이트를 운영중이신 분은 적용하시면 안되겠네요.
function procBoardInsertDocument() {
// check grant
if($this->module_info->module != "board") return new Object(-1, "msg_invalid_request");
if(!$this->grant->write_document) return new Object(-1, 'msg_not_permitted');
$logged_info = Context::get('logged_info');
// setup variables
$obj = Context::getRequestVars();
$obj->module_srl = $this->module_srl;
if($obj->is_notice!='Y'||!$this->grant->manager) $obj->is_notice = 'N';
$obj->commentStatus = $obj->comment_status;
settype($obj->title, "string");
//제목이 온리 영문인지 확인
if(!preg_match("/[\xA1-\xFE][\xA1-\xFE]/", $obj->title)){
//$output = "error";
return ;
}
if($obj->title == '') $obj->title = cut_str(strip_tags($obj->content),20,'...');
//setup dpcument title tp 'Untitled'
if($obj->title == '') $obj->title = 'Untitled';
// unset document style if the user is not the document manager
if(!$this->grant->manager) {
unset($obj->title_color);
unset($obj->title_bold);
}
...........
그럼 총총..
http://www.jquerykroea.pe.kr
댓글 13
-
컴매냐
2013.09.17 06:15
그럼 혹시 이런건 될까요?
//제목이 온리 영문인지 확인 if(!preg_match("/[\xA1-\xFE][\xA1-\xFE]/", $obj->content)){ return $this->stop('msg_invalid_request'); }
-
내용을 간단한 영어로 써도 막히겠네요. 예를들어 gogosing 하고 한마디만 하면 안되겠군요.
-
컴매냐
2013.09.17 06:45
그래도 보통 그런 분은 거의 없으니 괜찮지 않을까요?^^ 쿠키를 이용한 보완 버전입니다.
/modules/board/board.view.php function dispBoardWrite() { //쿠키 체크 $nospam="not_spam"; setcookie('is_not_spam', $nospam ,0,'/'); //이하 생략 /modules/board/board.controller.php function procBoardInsertDocument() { //쿠키 설정 체크 if (!isset($_COOKIE['is_not_spam'])) { return new Object(-1, "msg_invalid_request"); } //제목이 온리 영문인지 확인 if(!preg_match("/[\xA1-\xFE][\xA1-\xFE]/", $obj->content)){ return $this->stop('msg_invalid_request'); } //이하 생략
-
쿠키설정은 좋아 보이네요.
$nospam
=
"not_spam"
;
부분을
$
nospam=sha1("not_spam_".date('YmdHi'));
이렇게 분 단위로 값이 변하게 하고 하고
//쿠키 설정 체크
if
(!isset(
$_COOKIE
[
'is_not_spam'
])) {
이부분을
//쿠키 설정 체크
if
(
$_COOKIE
[
'is_not_spam'
]==sha1("not_spam_".date('YmdHi'))) {
요렇게 하면 어떨까요?주의) 테스트 해본게 아니라서 php 문법이 틀릴 수 있습니다. 개념만... -
그럼 글작성 시간이 최대 1분이 지나면 차단이군요..ㅎㅎ
-
ㅋㅋㅋ 그러네요.
한시간쯤이 좋겠네요 ;;
-
스토리웨이
2013.09.17 08:44
고민하지 않은건 아닌데.. 스팸 때문에 생기는 문제가 더 큰거 같아서요.
와, 정상적인 게시물이 보이지 않을 정도가 되버리니....
그래서 좀 과감하게 진행했습니다. 일단, 스팸 고민은 덜 하게 되네요.
고수분들이 보완 해주시리라 믿습니다.
-
영문 홈페이지 운영 하시는 분들도 고려해야 할 것 같아요 ^^*
-
컴매냐
2013.09.22 12:40
@푸시아 @CONORY
setcookie()에서 시간을 0으로 설정하는 건 0분 후에 만료라는게 아니라 세션이 종료될 때를 말하는 것 같은데요.
http://www.php.net/manual/en/function.setcookie.php
-
넹. 근데 쿠키를 구울때 값을 가변적으로 하기위해 코드를 고쳐본 거에요.
-
cherri
2013.09.29 00:38
제 사이트에는 제목이 영문만으로 된 스팸도 올라오지만
영문이랑 일어랑 섞여있는 스팸도 종종 올라오는데요 ㅜㅜ
혹시 제목에 한글이 없으면 스팸으로 간주하는 것도 좀 만들어주실 수 있나요?
-
kinyenug
2013.10.16 10:03
그 소스로 추가햇는데 한글로 입력해서 올려보니 잘못된 요청이라고 되버리네요..
제목 | 글쓴이 | 날짜 |
---|---|---|
XE 1.2.1에서 xe_default 게시판 스킨 사용시 IE에서 글입력폼이 안보일 때 [2] | 현의느낌 | 2009.04.28 |
XE 위키에 최근 접속 페이지 정보 출력
![]() | 개돌 | 2009.04.27 |
[질문]회원가입시 음력생일입력 가능 한가요? [1] | 신정 | 2009.04.27 |
초보 xe1.1.5에대한질문 [3] | 울프 | 2009.04.26 |
스프링노트 연동기를 써 보았습니다. | amyjang | 2009.04.23 |
플래시 랜덤하게 불러오기 [9] | 선비숨결 | 2009.04.21 |
BNU님의 Planner XE 1.2 버젼(일정관리)
[9]
![]() | 개돌 | 2009.04.21 |
다양한 언어로 홈페이지 서비스하기 - 무식한 방법 [4] | 멀리서 | 2009.04.21 |
포인트 부족하면 글 조회 안되게 하는 법 [6] | 뚱님*^^* | 2009.04.18 |
첨부파일 안올라갈 경우..
[5]
![]() | 양갱; | 2009.04.18 |
홈페이지 타이틀이 $user_lang->home ,freeboard등으로 나오는 문제 수정방법(자체해결) [1] | 정박사닷컴 | 2009.04.18 |
폰트가 작아져요
[2]
![]() | 황소111 | 2009.04.17 |
해당 Cafe 회원에 가입후 Cafe 회원목록에 나타나지 않음...... | 뉴욕에서 | 2009.04.16 |
페이지 및 게시판 메뉴 경로
[2]
![]() | 자반튀김 | 2009.04.15 |
제로보드4, xe 버전 바이러스에 대한 질문 [1] | 투자혁명 | 2009.04.15 |
게시판에서 확장 변수를 쓰는 경우 1.2.0 이상 버전으로 업그레이드하기 전에 패치하시기 바랍니다.
[5]
![]() | mooo | 2009.04.14 |
XpressEngine 1.2.1 r6096 트리거 목록 [2] [1] | mooo | 2009.04.13 |
[1.2.0] content 위젯 사용시 rss리더 새창에 뛰우기 [1] | 늘같이 | 2009.04.10 |
비밀글 댓글이 최신댓글 위젯에 노출되는 문제 수정방법 [1] | 얼터1 | 2009.04.10 |
주민등록 입력 폼 1.2.0
[55]
![]() | 개돌 | 2009.04.10 |
이건 좀 위험하지 않을까요... 가끔 온리영문으로도 제목 쓰는데...