문제 해결

중요: reCAPTCHA API 버전 1.0은 더 이상 지원되지 않습니다. 버전 2.0으로 업그레이드하세요. 자세히 알아보기


reCAPTCHA를 추가할 위치를 파악할 수 없음

이 권장사항은 언어와 상관없이 reCAPTCHA를 통합하는 모든 사용자에게 적용됩니다.

먼저 코드에서 핫스팟 두 개를 식별해야 합니다. 여기에서 reCAPTCHA 호출을 추가할 수 있습니다.

  • reCAPTCHA 표시: 첫 번째 핫스팟은 양식을 생성하는 코드입니다. 이 정보는 html에서 <form> 태그를 찾아 쉽게 찾을 수 있고 양식에 보안문자를 표시할 수 있었으면 합니다.

  • reCAPTCHA 확인: 두 번째 핫스팟은 사용자에게 문제를 일으킬 수 있는 것으로 보입니다. 양식 제출을 처리하는 코드, 즉 사용자가 submit을 클릭할 때 실행되는 코드를 식별해야 합니다. 이 코드를 일반화하기는 어렵지만 다음과 같은 몇 가지 단서가 있습니다.

    • 양식에 오류 메시지가 표시될 수 있는 경우(예: 필수 필드가 비어 있는 경우) 해당 오류 메시지를 생성하는 코드를 찾습니다.
    • 양식이 데이터베이스에 정보를 저장하는 경우 SQL 삽입을 수행하는 코드를 찾으세요.
    • 양식에서 메일을 전송하는 경우 이를 처리하는 코드를 검색합니다.

    양식에 이미 유효성 검사가 있음

    양식에 이미 유효성 검사 로직이 있으면 (즉, 일반적으로 하는 작업을 실행하는 대신 메시지를 표시하여 사용자의 잘못된 입력을 처리) 수월한 상태가 됩니다. 이 경우 거의 무료로 사용할 수 있는 코드를 찾을 수 있습니다. 양식에 오류 메시지를 표시할 수 있는 경우 코드 내에서 오류 메시지 텍스트를 검색하면 완료됩니다. 유효성 검사 코드를 찾으면 다른 확인 항목(이메일 주소가 비어 있거나 너무 어리거나 나이가 너무 어린 경우 등) 외에 check_answer 함수 호출을 추가해야 합니다.

    양식에 검증이 없음

    현재 양식에 대한 유효성 검사 로직이 없는 경우(항상 제출을 클릭해도 성공한 경우) 더 까다로운 문제가 있는 것입니다. 이 경우 기존 양식 처리 코드가 사용자가 제출할 때 수행하는 작업을 수행하기 직전에 reCAPTCHA 유효성 검사 코드를 추가해야 합니다. 또한 사용자가 보안문자를 다시 시도할 수 있도록 양식을 다시 표시하는 방법도 파악해야 합니다. 안타깝지만 이에 대한 정답은 없습니다. 이는 이미 있는 코드의 구조에 따라 완전히 달라집니다. 기존 코드가 너무 복잡하지 않다면 reCAPTCHA 개발자 포럼에 코드를 게시하고 조언을 구하시기 바랍니다. 여기에 게시물을 올릴 때는 다른 사용자가 도움을 줄 수 있도록 충분한 정보를 제공해 주세요. '내 코드가 작동하지 않습니다'라고만 말하는 것만으로는 좋은 결과를 얻지 못하는 경우가 많습니다.

  • 작동하지 않습니다. 도와 주세요!

    다른 작업을 하기 전에 올바른 키를 사용하고 있는지 확인하세요. 공개 키와 비공개 키가 서로 바뀌었나요? 양식 핸들러에 비공개 키를 넣고 양식에 공개 키를 넣는 것을 기억하시나요?

    Mailhide는 기본 양식 기반 reCAPTCHA와 다른 키를 사용합니다.

    양식에서 POST 메서드를 사용하는지 확인하거나 reCAPTCHA 양식 핸들러 변수를 POST 대신 GET으로 변경하세요.

    reCAPTCHA가 작동하다가 갑자기 '내부 오류가 발생했습니다'라는 메시지가 표시되는 경우 키 가입 시 사용한 Google 계정을 최근에 삭제하셨나요? 그렇다면 활성 계정으로 새 키를 등록하고 사용해 보세요.

    reCAPTCHA에서 잘못된 단어를 허용함

    인간은 실수를 저지르고, 우리는 그 사실을 이해합니다. reCAPTCHA에서는 고급 위험 분석 엔진을 사용하여 수신되는 요청이 사람으로부터 온 것인지 확인합니다. 사용자가 사람임을 확신할 수 있을 때 사소한 실수를 할 수 있습니다.

    아니요, *완전히* 잘못된 단어를 의미합니다.

    reCAPTCHA가 아무 입력이나 허용하는 경우 API 서버에서 reCAPTCHA 답변을 올바르게 검증하지 못할 수 있습니다. 즉, (1) https://www.google.com/recaptcha/api/verify (또는 PHP에서 recaptcha_check_answer와 같은 플러그인을 사용하는 경우 이에 상응하는 함수)를 올바르게 호출하지 않거나 (2) Google 서버의 응답을 통해 적절한 조치를 취하지 않은 경우입니다. 사용자가 답변을 올바르게 입력했는지 확인하려면 플러그인을 통해 구현되었는지 여부에 관계없이 reCAPTCHA를 설치하는 데 사용한 구체적인 안내를 참고하세요.

    사용자가 보안문자를 사용하기 시작했습니다.

    reCAPTCHA가 항상 두 단어로 필요한 것은 아닙니다. 인간과 로봇을 구분하는 테스트입니다. 사용자가 사람임을 확신하는 경우 훨씬 쉬운 보안문자를 제공합니다 (아래 샘플). Google 시스템에서는 문제 해결 전, 도중, 이후에 reCAPTCHA에 참여한 사용자의 전체 참여에 따라 솔루션만 사용하는 것이 아니라 테스트의 합격 여부를 결정합니다.

    쉬운 보안문자

    이 쉬운 보안문자의 보안에 대해 알아보려면 Google 블로그를 참조하세요. http://넣은 보안 비밀.blogspot.com/2013/10/recaptcha-just-got-easier-but-only-if.html