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

도배방지코드 캡챠부분 질문드려봐요.. 채택완료

슈피 7년 전 조회 2,071

도배방지코드 캡챠부분 질문드려봐요..

 

해당부분에 특정 단어를 입력하면 캡챠단어와 달라도 패스를 해주고싶은데

어디부분을 참고하면 될까요?

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

답변 3개

채택된 답변
+20 포인트
7년 전

plugin/kcaptcha/kcaptcha.lib.php 269라인쯤을 다음 처럼 바꿔 시도해 보세요.

</p>

<p>// 세션에 저장된 캡챠값과 $_POST 로 넘어온 캡챠값을 비교

function chk_captcha()

{

    $reserve_words = "abcdefg"; //미리 지정된 예약어

    

    $captcha_count = (int)get_session('ss_captcha_count');

    if ($captcha_count > 5) {

        return false;

    }</p>

<p>    if (!isset($_POST['captcha_key'])) return false;

    if (!trim($_POST['captcha_key'])) return false;

    if ($_POST['captcha_key'] != get_session('ss_captcha_key')) {

        if($reserve_words) return true;

        else{

            $_SESSION['ss_captcha_count'] = $captcha_count + 1;

            return false;

        }

    }

    return true;

}</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

슈피
7년 전
이렇게하니 코드를 아무거나 입력해도 작성됩니다 ㅠㅠ 죄송하네요..감사합니다 또
평정심
7년 전
그렇네요 ㅎㅎ
제가 테스트를 해 보며 하는게 아니라서 그런 부분이 있었군요.
if($reserve_words) 부분을 다음으로 대체해 보세요.

if($reserve_words == $_POST['captcha_key']) echo true;

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

7년 전

다음처럼 kcaptcha_result.php파일 내용을 아래내용으로 대체하고 시도해 보시죠.

미리 $reserve_words에 원하시는 에약어를 넣으시고요. 캡차값에 맞지 않아도 그 값이 있으면

오케이 됩니다.

</p>

<p><?php

// 캡챠 세션값과 비교하여 맞는지? 틀린지? 결과값을 출력합니다.

include_once("_common.php");

//header("Content-Type: text/html; charset=$g4[charset]");</p>

<p>$reserve_words = "abcdefg";</p>

<p>if(get_session("ss_captcha_key") == $_POST['captcha_key']){

    $count = (int)get_session("ss_captcha_count");

    if ($count >= 5) { // 설정값 이상이면 자동등록방지 입력 문자가 맞아도 오류 처리

        echo false;

    } else {

        set_session("ss_captcha_count", $count + 1);

         echo (get_session("ss_captcha_key") == $_POST['captcha_key']) ? true : false;

    }

}

else{

    if($reserve_words) echo true;

    else echo false;

}</p>

<p>?></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

슈피
7년 전
답변감사합니다. 저렇게 처리하니 이쪽단에서는 넘어가는데 wirte_update쪽


if ($is_guest && !chk_captcha()) {
alert('자동등록방지 숫자가 틀렸습니다.');
}

이쪽에서 한번더 걸리는것같습니다..

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

7년 전

plugin/kcaptcha/kcaptcha_result.php 파일을 살펴보고 

의도하는대로 수정하셔야 겠습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

슈피
7년 전
봤는데 영모르겟네요 ㅠㅠ 예를들어 abcabc 라는 단어를 치면 캡챠숫자와달라도 패스해주고싶은데..

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

답변을 작성하려면 로그인이 필요합니다.

로그인