| 
Communications∨
 | 
Infos on Art∨
 
질문/답변 게시판
117
[Kallery] CAPTCHA 대신 이런 방법이?
webmaster at 2017-09-10 09:20
URL http://kallery.net/s.php?i=724



CAPTCHA는 사람과 robot을 구별해내는 장치입니다. 주로 자동으로 회원가입을 하는 것을 막기 위해 사용되죠. 사람만이 읽을 수 있는 문자 이미지를 보여주고, 읽을 수 있는지 시험해서, 읽을 수 있는 경우에만 회원가입을 허용하는 방법이 주로 많이 쓰입니다. 
그런데 robot이 문자 이미지도 읽을 수 있게 진화하면서, captcha 이미지도 robot이 읽을 수 없게 복잡하게 만들어지다 보니, 사람도 읽기 어려운 captcha 이미지가 만들어지게 되었습니다.
그래서 이미지가 아닌 퀴즈로 robot을 걸러내는 방법을 제안합니다.
php의 경우 아래 코드를 회원가입 페이지에 삽입하면 되는데, 다른 언어의 경우에는 동일한 내용의 script를 직접 만들어야 합니다.

if(!$_SESSION['nnslmy']) {
    $s  = "<script type='text/javascript'>";
    $s .= "location.href='http://kallery.net/Q/t.php?r=";
    $s .= urlencode("http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
    $s .= "';</script>";
    if($_GET['nnslmy']) {
        if($h = fopen("http://kallery.net/Q/q.php?i=".$_GET['nnslmy'],"rb")) {
            $r = fread($h,1);
            fclose($h);
        }
        if($r>0) $_SESSION['nnslmy'] = 1; else echo $s;
    } else echo $s;
}

내용을 설명하자면 이렇습니다.
nnslmy란 session 변수가 참으로 설정되어 있지 않을 경우 t.php로 보내어 퀴즈를 풀게 합니다. 
그곳에서 다 맞히면 nnslmy이란 get 변수에 session id를 붙여서 보내줍니다. 
보내온 값을 q.php에 물어 참으로 확인되면 nnslmy란 session 변수를 참으로 설정하고 회원가입 과정을 허용합니다.


첨부파일
    6a0120a85dcdae970b012877702ac4970c-pi.png [내려받기] [보기]

[권한] 읽기:비회원, 덧글:일반회원, 쓰기:일반회원, 파일올리기:webmaster, 관리:webmaster
Winners
18:37   솔까역사
19:10   아랑개비
00:59   달달스텝
08:33   소금물 (saltwa...
15:18   breakson



Introduction | Google+