프로그램을 통한 봇 가입 막기
프로그램 봇들은 직접 클릭,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님 코멘트를 보고 작성했습니다.
이것을 잡아내는게 주요 포인트입니다.
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개
스트레스ㅡ제윤아빠
9년 전
훌륭한 방법인것 같습니다.
장난감곰돌이
9년 전
좋은방법이지만 봇으로는 알수없는 값을 암호화해서 보내는게 좋지않을까요 예를들면 토큰처럼요
9년 전
일단 이 방법은 자바스크립트 내에서 value 값이 확인 되기 때문에
봇이 저 값을 파악하면 뚫을수 있으니
그런 봇이 생긴다면 암호화를 통해서 만들어 봐야 될거 같네요.
봇이 저 값을 파악하면 뚫을수 있으니
그런 봇이 생긴다면 암호화를 통해서 만들어 봐야 될거 같네요.
장난감곰돌이
9년 전
사실 그런 봇을 막기위한 시도가 captcha 가 등장하게된 배경이죠
input 에 captcha 가 입력되고 submit 하면 넘기기전에 ajax 로 원문을 보내고 인크립트된 데이터를 response 로 받아서 hidden 으로 주고register_update 에서 디크립트하고 캡챠를 체크하게 하면 봇 제작자가 그것까지 만들까 싶기도 하구요
ajax 페이지는 register_form 이외의 페이지는 응답하지않게 해버리면 더 좋을듯 하구요 여러가지 좋은 아이디어를 기대해봅니다 +_+
input 에 captcha 가 입력되고 submit 하면 넘기기전에 ajax 로 원문을 보내고 인크립트된 데이터를 response 로 받아서 hidden 으로 주고register_update 에서 디크립트하고 캡챠를 체크하게 하면 봇 제작자가 그것까지 만들까 싶기도 하구요
ajax 페이지는 register_form 이외의 페이지는 응답하지않게 해버리면 더 좋을듯 하구요 여러가지 좋은 아이디어를 기대해봅니다 +_+
9년 전
회원정보수정에서 오류가 나서
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" 를 추가했습니다.
9년 전
그리고 이 방법으로 막은 이후
스팸 가입은 한달 지난 지금까지 하나도 없네요
스팸 가입은 한달 지난 지금까지 하나도 없네요
palangsae
9년 전
해당파일에 추가하면 되는거죠?
감사합니다.
감사합니다.
9년 전
좋은팁 감사합니다.
9년 전
위방법대로 하면 정상적인 방법으로 가입하라고 나옵니다.
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" 를 추가했습니다.
이건 또 어디에 추가해야 하는지요
9년 전
본글의 소스코드대로 하시면 됩니다
수정되어있어요
수정되어있어요
9년 전
안녕하세요
해당 코드 적용하고나니 회원 가입할때 무조건 '정상적인 방법으로 가입해주세요' 가 계속 발생합니다.
어느 부분에서 제가 잘못 수정했는지 모르겠네요...
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]);
}
9년 전
위의 tom님 처럼 저도 에러가 뜹니다. 두파일 모두 정확히 어떤 줄에 넣어야 하는지
알려주시면 감사하겠습니다.
알려주시면 감사하겠습니다.
9년 전
위의 tom님 처럼 저도 에러가 나네요;;;
이거 스트레스인데, 어떻게 방법이 없을까요? ㅠ
이거 스트레스인데, 어떻게 방법이 없을까요? ㅠ
9년 전
저는 아래 도움으로 해결하였습니다.
http://sir.kr/g5_tip/3655?page=2#c_4265
http://sir.kr/g5_tip/3655?page=2#c_4265
그누랑놀자
9년 전
안되네요.. 정상적인 방법으로 가입하라고만 나옴니다.
sinbi
6년 전
그누보드5 관련 질문글
https://sir.kr/qa/302894
https://sir.kr/qa/302894
게시판 목록
그누4 팁자료실
그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.
나누면 즐거움이 커집니다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 3309 | 3년 전 | 1798 | ||
| 3308 | 11년 전 | 2087 | ||
| 3307 |
uPAmJ903
|
6년 전 | 4742 | |
| 3306 |
바른사나이
|
6년 전 | 3269 | |
| 3305 | 6년 전 | 12297 | ||
| 3304 | 7년 전 | 3699 | ||
| 3303 | 7년 전 | 3737 | ||
| 3302 |
지리산초보
|
7년 전 | 13589 | |
| 3301 |
sozet
|
8년 전 | 4897 | |
| 3300 |
sozet
|
8년 전 | 5963 | |
| 3299 |
sozet
|
8년 전 | 10856 | |
| 3298 | 8년 전 | 4008 | ||
| 3297 |
또치하우스
|
8년 전 | 4434 | |
| 3296 | 8년 전 | 11961 | ||
| 3295 |
또치하우스
|
8년 전 | 14978 | |
| 3294 | 8년 전 | 6016 | ||
| 3293 | 8년 전 | 5583 | ||
| 3292 |
|
9년 전 | 5309 | |
| 3291 | 9년 전 | 13673 | ||
| 3290 | 9년 전 | 5043 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기