테스트 사이트 - 개발 중인 베타 버전입니다

프로그램을 통한 봇 가입 막기

프로그램 봇들은 직접 클릭,tab 등을 통해서 input박스에 입력하지 않기 때문에

이것을 잡아내는게 주요 포인트입니다.

skin\member\basic\register_form.skin.php

[code]
<form id="fregisterform" name=fregisterform method=post onsubmit="return fregisterform_submit(this);" enctype="multipart/form-data" autocomplete="off">
<input type=hidden name=w value="<?=$w?>">
<input type=hidden name=url value="<?=$urlencode?>">
<input type=hidden name=mb_jumin value="<?=$jumin?>">
<input type=hidden name=mb_id_enabled value="" id="mb_id_enabled">
<input type=hidden name=mb_nick_enabled value="" id="mb_nick_enabled">
<input type=hidden name=mb_email_enabled value="" id="mb_email_enabled">

<!--봇 막기위한 히든 인풋 추가-->
<input type=hidden name=register_shield>
<script>
$( "#reg_mb_id" ).focus(function() {
$("input[name=register_shield]").val('bot_out');
});
</script>
<!--끝-->
[/code]


bbs\register_form_update.php

[code]
if($_POST[register_shield] != "bot_out" && $w != "u"){
alert("정상적인 방법으로 가입해주세요.", $g4[path]);
}
[/code]







[참고] http://sir.co.kr/cm_free/1158703 의 빅뱅1님 코멘트를 보고 작성했습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 16개

훌륭한 방법인것 같습니다.
좋은방법이지만 봇으로는 알수없는 값을 암호화해서 보내는게 좋지않을까요 예를들면 토큰처럼요
일단 이 방법은 자바스크립트 내에서 value 값이 확인 되기 때문에

봇이 저 값을 파악하면 뚫을수 있으니

그런 봇이 생긴다면 암호화를 통해서 만들어 봐야 될거 같네요.
사실 그런 봇을 막기위한 시도가 captcha 가 등장하게된 배경이죠
input 에 captcha 가 입력되고 submit 하면 넘기기전에 ajax 로 원문을 보내고 인크립트된 데이터를 response 로 받아서 hidden 으로 주고register_update 에서 디크립트하고 캡챠를 체크하게 하면 봇 제작자가 그것까지 만들까 싶기도 하구요
ajax 페이지는 register_form 이외의 페이지는 응답하지않게 해버리면 더 좋을듯 하구요 여러가지 좋은 아이디어를 기대해봅니다 +_+
회원정보수정에서 오류가 나서

if($_POST[register_shield] != "bot_out"){

if($_POST[register_shield] != "bot_out" && $w != "u"){

$w != "u" 를 추가했습니다.
그리고 이 방법으로 막은 이후

스팸 가입은 한달 지난 지금까지 하나도 없네요
해당파일에 추가하면 되는거죠?
감사합니다.
좋은팁 감사합니다.
위방법대로 하면 정상적인 방법으로 가입하라고 나옵니다.
if($_POST[register_shield] != "bot_out"){

if($_POST[register_shield] != "bot_out" && $w != "u"){

$w != "u" 를 추가했습니다.

이건 또 어디에 추가해야 하는지요
본글의 소스코드대로 하시면 됩니다

수정되어있어요
안녕하세요

해당 코드 적용하고나니 회원 가입할때 무조건 '정상적인 방법으로 가입해주세요' 가 계속 발생합니다.

어느 부분에서 제가 잘못 수정했는지 모르겠네요...

bbs\register_form_update.php에서 자동등록방지 검사 밑에 입력했는데 잘못한건지요?

// 자동등록방지 검사
//include_once ("./norobot_check.inc.php");

$key = get_session("captcha_keystring");
if (!($key && $key == $_POST[wr_key])) {
unset($_SESSION['captcha_keystring']);
alert("정상적인 접근이 아닌것 같습니다.");
}

if($_POST[register_shield] != "bot_out" && $w != "u"){
alert("정상적인 방법으로 가입해주세요.", $g4[path]);
}
위의 tom님 처럼 저도 에러가 뜹니다. 두파일 모두 정확히 어떤 줄에 넣어야 하는지

알려주시면 감사하겠습니다.
위의 tom님 처럼 저도 에러가 나네요;;;

이거 스트레스인데, 어떻게 방법이 없을까요? ㅠ
저는 아래 도움으로 해결하였습니다.
http://sir.kr/g5_tip/3655?page=2#c_4265
안되네요.. 정상적인 방법으로 가입하라고만 나옴니다.
그누보드5 관련 질문글
https://sir.kr/qa/302894

게시판 목록

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.
글쓰기