웹마스터 팁
영문 스팸 방지
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.16 22:12
-
컴매냐
2013.09.17 06:15
그럼 혹시 이런건 될까요?
//제목이 온리 영문인지 확인 if(!preg_match("/[\xA1-\xFE][\xA1-\xFE]/", $obj->content)){ return $this->stop('msg_invalid_request'); }
-
푸시아
2013.09.17 06:18
내용을 간단한 영어로 써도 막히겠네요. 예를들어 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'); } //이하 생략
-
푸시아
2013.09.17 10:51
쿠키설정은 좋아 보이네요.
$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 문법이 틀릴 수 있습니다. 개념만... -
CONORY
2013.09.17 11:35
그럼 글작성 시간이 최대 1분이 지나면 차단이군요..ㅎㅎ
-
푸시아
2013.09.17 11:55
ㅋㅋㅋ 그러네요.
한시간쯤이 좋겠네요 ;;
-
스토리웨이
2013.09.17 08:44
고민하지 않은건 아닌데.. 스팸 때문에 생기는 문제가 더 큰거 같아서요.
와, 정상적인 게시물이 보이지 않을 정도가 되버리니....
그래서 좀 과감하게 진행했습니다. 일단, 스팸 고민은 덜 하게 되네요.
고수분들이 보완 해주시리라 믿습니다.
-
푸시아
2013.09.17 10:52
영문 홈페이지 운영 하시는 분들도 고려해야 할 것 같아요 ^^*
-
컴매냐
2013.09.22 12:40
@푸시아 @CONORY
setcookie()에서 시간을 0으로 설정하는 건 0분 후에 만료라는게 아니라 세션이 종료될 때를 말하는 것 같은데요.
http://www.php.net/manual/en/function.setcookie.php
-
푸시아
2013.09.22 13:02
넹. 근데 쿠키를 구울때 값을 가변적으로 하기위해 코드를 고쳐본 거에요. -
cherri
2013.09.29 00:38
제 사이트에는 제목이 영문만으로 된 스팸도 올라오지만
영문이랑 일어랑 섞여있는 스팸도 종종 올라오는데요 ㅜㅜ
혹시 제목에 한글이 없으면 스팸으로 간주하는 것도 좀 만들어주실 수 있나요?
-
kinyenug
2013.10.16 10:03
그 소스로 추가햇는데 한글로 입력해서 올려보니 잘못된 요청이라고 되버리네요..
제목 | 글쓴이 | 날짜 |
---|---|---|
상담게시판 바로 글쓰기 이동하기 팁.. [3] | 만쓰별(정만) | 2009.02.05 |
XE 1.7 에서 닉네임 클릭시 홈페이지나 블로그 등이 새창으로 안 뜨는 버그 수정법 [1] | sejin7940 | 2013.10.07 |
1.7 이상 기본레이아웃, ie9에서 1차메뉴 깨짐 현상... [3] | uoou | 2013.10.07 |
기본 URL 설정 팁 [4] | EvangelineA.K.Macdowell | 2013.10.25 |
익명 게시판을 사용중일때 이미지 썸내일표시. | 말똥이 | 2013.10.27 |
기본 url 을 공란으로 둔 경우 `잘못된 요청입니다' 메시지 [6] | samsara | 2013.02.24 |
웹사이트 최적화 방법론 [4] | 다크진 | 2013.09.17 |
스케치북 1.7.2.1 게시판 닉네임 짤림 오류 임시 수정법 | 귀머거리하늘 | 2013.10.21 |
스케치북 1.7.2.1 게시판 상단 내용 오류 수정 방법 | 귀머거리하늘 | 2013.10.21 |
.htaccess 에서 캐시 설정(?) [1] | socialskyo | 2013.10.20 |
썸네일 생성이 되지 않을시 확인할 내용.. [4] | 또나아빠 | 2008.06.17 |
특정 확장변수값이 포함된 글의 총 개수를 출력하는 함수 [3] | sejin7940 | 2012.08.07 |
알수없는 여백(공백,마진)이 생기는 문제 해결법 - 초보님용 [1] | 주영수 | 2011.07.23 |
오래된 게시글에 댓글포인트 안주기 [6] | Xiso | 2013.05.04 |
영문 스팸 방지 [13] | 스토리웨이 | 2013.09.16 |
페이북 좋아요 버튼 애드온 [2] | 똑디 | 2013.10.11 |
소스에서 php short tags 제거하기 [1] | 토우코 | 2007.11.24 |
게시판에 다른 테이블 값 직접 가져오기 [1] | 똑디 | 2013.10.11 |
XE 팝업모듈과 애드온 : XE_Popup_Borderless [7] | 우진홈 | 2013.05.17 |
[PHP 동영상강의] 41. 추천사이트(북마크)프로그램 만들기 [4] | 서기 | 2006.02.27 |
이건 좀 위험하지 않을까요... 가끔 온리영문으로도 제목 쓰는데...