게시판이나 온라인 상담등에서 로그인을 하지 않은 사용자에게 글쓰기를 허용할 경우
시간이 흘러서 사이트가 알려지면 스팸성 글들이 많이 올라오게 되는 경우가 많습니다.
$HTTP_REFERER를 확인하여 처리하기도 했었는데요.
요즘은 $HTTP_REFERER를 확인하여도 스팸성 글들이 올라오기도 합니다.
그래서 스팸글 자동등록을 방지하는 오픈소스를 소개해 드립니다.
Securimage라는 오픈소스인데요 PHP를 사용하여 captcha images 와 audio를 만들어주는 소스입니다.
소스와 설명등은 해당 홈페이지 https://www.phpcaptcha.org/에서 확인하실 수 있습니다.
현재 3.5.2 버젼까지 배포되고 있습니다.
여기서 Demo를 보실 수도 있고 다운받으실 수도 있습니다.
다음은 다운로드 페이지 입니다.
다운로드 페이지를 보시면 기부금에 대한 얘기가 나옵니다.
기부금으로 3(미국)달러를 요구하였습니다.
그러나 꼭 기부를 해야 하는 것은 아니며 유용하였다면 기부를 해주면 쌩큐~ 라는것 같네요
해당소스를 다운받아 서버에 올렸습니다.
그리고 아래의 두가지 방법으로 각각 테스트하였습니다.
1. 코드를 직접 삽입하는 방법
(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)
2. 클래스를 이용하는 방법
(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)
// show captcha HTML using Securimage::getCaptchaHtml() require_once './securimage/securimage.php'; $options = array(); $options['input_name'] = 'ct_captcha'; // change name of input element for form post if (!empty($_SESSION['ctform']['captcha_error'])) { // error html to show in captcha output $options['error_html'] = $_SESSION['ctform']['captcha_error']; } echo Securimage::getCaptchaHtml($options);
위 두 경우 모두 파일이나 이미지등의 경로는 상황에 맞게 변경해 주셔야합니다.
아래는 위 코드중 2번째 방법을 써서 적용해본 이미지입니다.
실제 음성이 들리는 것까지 확인하였으며 익스11과 크롬에서 동작 테스트를 완료하였습니다.
* 추가 (클래스 이용시)
1. "Type the text: " 문자 변경 : 이미지를 불러오는 부분에서 옵션을 추가
예 ) $options['input_text'] = '원하는 문구';
2. DB입력부분에서 값 확인
$captcha = $_POST['ct_captcha']; require_once './securimage/securimage.php'; $securimage = new Securimage(); if ($securimage->check($captcha) == false) { echo"error"; }else{ echo "OK"; }
'PHP' 카테고리의 다른 글
Fatal error: Call to undefined function mime_content_type() in ~ 발생시 (0) | 2015.04.01 |
---|---|
CASTLE(캐슬)을 아시나요? (0) | 2015.03.20 |
PHP에서 모바일 접속 여부를 확인하는 오픈소스 (0) | 2015.02.25 |
[PHP] 대용량 텍스트 파일 자르기 (0) | 2015.02.12 |
[PHP] 배열 중간에 추가하기 (0) | 2015.02.05 |