Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- WebView
- chart.js
- 폼메일
- 안드로이드 푸시
- php 시큐어코딩
- C# IO
- roundcube
- 안드로이드 gcm
- soundpool
- php 취약점
- html5
- xe
- UML
- PHP
- javascript
- C#
- not working
- 안드로이드
- dovecot
- 안드로이드 푸쉬
- 우분투
- Mail Server
- mysql
- FCM
- android 효과음
- Android
- 자바스크립트
- curl
- 설치
- 자동 생성
Archives
- Today
- Total
그러냐
xe 스팸방지 팁 본문
반응형
출처 : https://www.xpressengine.com/tip/22279567
2013.08.23 13:08
요즘 스팸때문에 고민인 분들이 종종 보이네요.
회원만 글쓰기 하면 뭐 문제 없겠지만, 비원글쓰기 인경우 스팸테러의 우려가 있지요.
개인적으로 captcha 방식은 싫어해서.. 다른 방법을 생각해 봤구요..
소스 수정입니다.
1. 회원 자동가입방지
/modules/member/member.controller.php
이 파일을 에디터로 엽니다.
procMemberInsert()이 함수를 찾기 기능으로 찾습니다.
빨간 글쓰 부분 추가 하면 됩니다.
이것은 referer 확인해서외부에서 파싱하는 것을 막아 줍니다.
function procMemberInsert() {
if (Context::getRequestMethod () == "GET") return new Object (-1, "msg_invalid_request");
if(!strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])) return new Object (-1, "msg_invalid_request");
$oMemberModel = &getModel ('member');
$config = $oMemberModel->getMemberConfig ();
2. 자동 글쓰기 코멘트쓰기 방지
/modules/board/board.controller.php
이 파일을 열어서
procBoardInsertDocument() 와 function procBoardInsertComment()함수를 찾아서 똑 같이 해줍니다.
function procBoardInsertDocument() {
// 권한 체크
if($this->module_info->module != "board") return new Object(-1, "msg_invalid_request");
if (Context::getRequestMethod () == "GET") return new Object (-1, "msg_invalid_request");
if(!$this->grant->write_document) return new Object(-1, 'msg_not_permitted');
if(!strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])) return new Object (-1, "msg_invalid_request");
========================================================================================================================
function procBoardInsertComment() {
// 권한 체크
if (Context::getRequestMethod () == "GET") return new Object (-1, "msg_invalid_request");
if(!strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])) return new Object (-1, "msg_invalid_request");
if(!$this->grant->write_comment) return new Object(-1, 'msg_not_permitted');
$logged_info = Context::get('logged_info');
=======================================================================================================================
php. 5.3.0이상의경우는 빨간부분 추가해야 합니다.
if(!strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'],true)) return new Object (-1, "msg_invalid_request");
반응형
'php' 카테고리의 다른 글
날짜 연산 날짜 차이 일수 구하기 (0) | 2016.01.25 |
---|---|
이미지 다운로드시 무조건 다운로드창 뜨게 하기 (0) | 2016.01.25 |
Mysql + php 트리구조 재귀호출 (0) | 2016.01.25 |
php 엑셀 다운로드시 0 사라지는 현상 (0) | 2016.01.25 |
엑셀파일 다운로드 시 한글깨짐 현상 (0) | 2016.01.25 |