프로그램을 통한 봇 가입 막기
프로그램 봇들은 직접 클릭,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개
봇이 저 값을 파악하면 뚫을수 있으니
그런 봇이 생긴다면 암호화를 통해서 만들어 봐야 될거 같네요.
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]);
}
알려주시면 감사하겠습니다.
이거 스트레스인데, 어떻게 방법이 없을까요? ㅠ
http://sir.kr/g5_tip/3655?page=2#c_4265
https://sir.kr/qa/302894