프로그램을 통한 봇 가입 막기 정보
프로그램을 통한 봇 가입 막기본문
프로그램 봇들은 직접 클릭,tab 등을 통해서 input박스에 입력하지 않기 때문에
이것을 잡아내는게 주요 포인트입니다.
skin\member\basic\register_form.skin.php
bbs\register_form_update.php
[참고] http://sir.co.kr/cm_free/1158703 의 빅뱅1님 코멘트를 보고 작성했습니다.
이것을 잡아내는게 주요 포인트입니다.
skin\member\basic\register_form.skin.php
<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>
<!--끝-->
bbs\register_form_update.php
if($_POST[register_shield] != "bot_out" && $w != "u"){
alert("정상적인 방법으로 가입해주세요.", $g4[path]);
}
[참고] http://sir.co.kr/cm_free/1158703 의 빅뱅1님 코멘트를 보고 작성했습니다.
추천
1
1
댓글 16개

훌륭한 방법인것 같습니다.
좋은방법이지만 봇으로는 알수없는 값을 암호화해서 보내는게 좋지않을까요 예를들면 토큰처럼요
일단 이 방법은 자바스크립트 내에서 value 값이 확인 되기 때문에
봇이 저 값을 파악하면 뚫을수 있으니
그런 봇이 생긴다면 암호화를 통해서 만들어 봐야 될거 같네요.
봇이 저 값을 파악하면 뚫을수 있으니
그런 봇이 생긴다면 암호화를 통해서 만들어 봐야 될거 같네요.
사실 그런 봇을 막기위한 시도가 captcha 가 등장하게된 배경이죠
input 에 captcha 가 입력되고 submit 하면 넘기기전에 ajax 로 원문을 보내고 인크립트된 데이터를 response 로 받아서 hidden 으로 주고register_update 에서 디크립트하고 캡챠를 체크하게 하면 봇 제작자가 그것까지 만들까 싶기도 하구요
ajax 페이지는 register_form 이외의 페이지는 응답하지않게 해버리면 더 좋을듯 하구요 여러가지 좋은 아이디어를 기대해봅니다 +_+
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" 를 추가했습니다.
그리고 이 방법으로 막은 이후
스팸 가입은 한달 지난 지금까지 하나도 없네요
스팸 가입은 한달 지난 지금까지 하나도 없네요

해당파일에 추가하면 되는거죠?
감사합니다.
감사합니다.

좋은팁 감사합니다.
위방법대로 하면 정상적인 방법으로 가입하라고 나옵니다.
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]);
}
해당 코드 적용하고나니 회원 가입할때 무조건 '정상적인 방법으로 가입해주세요' 가 계속 발생합니다.
어느 부분에서 제가 잘못 수정했는지 모르겠네요...
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
http://sir.kr/g5_tip/3655?page=2#c_4265
안되네요.. 정상적인 방법으로 가입하라고만 나옴니다.

그누보드5 관련 질문글
https://sir.kr/qa/302894
https://sir.kr/qa/302894