보호가 없는 양식은 스팸을 모으고, 아무 일도 하지 않는 보호를 갖춘 양식도 같은 스팸을 모으면서 안전하다는 느낌만 줍니다. 무료 양식 보호 검사는 이 질문의 앞부분에 답합니다. 즉, 그 페이지가 어떤 봇 방어를 전달하는가 하는 점입니다. 이 글에서는 결과를 읽는 방법과 그 답이 어디까지인지를 설명합니다.
검사가 하는 일
양식이 있는 페이지의 주소를 입력합니다. 검사는 먼저 해당 사이트의 robots.txt를 읽습니다. 가져오기를 금지하거나 읽을 수 없으면 검사는 거기서 멈춥니다. 그렇지 않으면 그 한 페이지만 가져오며, 이름을 분명히 밝히고(SilentShieldFormCheck), 쿠키는 사용하지 않고, 리디렉션은 최대 세 번, 크기는 최대 1 MB까지입니다. 그런 다음 HTML에서 알려진 제공업체의 표식, 즉 스크립트 주소, 요소 클래스, 필드 이름을 찾습니다. 검사는 Google reCAPTCHA, hCaptcha, Cloudflare Turnstile, Friendly Captcha, SilentShield를 알고 있습니다. 주소도 결과도 아무것도 저장되지 않습니다.
다섯 가지 결과
- 모든 양식에 표식이 있습니다. 발견된 각 양식의 HTML에 알려진 제공업체의 표식이 들어 있습니다. 보호가 양식 안에 배치되어 있습니다.
- 일부 양식에만 표식이 있습니다. 표식이 없는 양식이 목록에 표시됩니다.
- 제공업체 스크립트는 로드되었지만 표식이 있는 양식은 없습니다. 페이지가 제공업체의 스크립트를 로드하지만 어떤 양식에도 표식이 없습니다. 스크립트가 양식을 보호하는지, 보호한다면 어느 양식인지는 JavaScript를 실행하지 않으면 알 수 없습니다.
- 전달된 HTML에서 아무것도 감지되지 않았습니다. 페이지에 양식은 있지만, 알려진 제공업체의 표식도 스크립트도 없습니다.
- 전달된 HTML에 양식이 없습니다. 양식이 브라우저에서 스크립트로 만들어질 수 있으며, 검사는 이를 볼 수 없습니다.
검사가 볼 수 없는 것
검사는 서버가 전달하는 HTML을 읽습니다. JavaScript는 실행하지 않습니다. 따라서 다음 네 가지를 염두에 두셔야 합니다.
- 스크립트가 브라우저에서 만드는 양식이나 위젯은 검사에는 존재하지 않습니다. 그러므로 “감지되지 않음”은 “전달된 HTML에는 아무것도 없음”을 뜻하며, 결코 “보호되지 않음”을 뜻하지 않습니다.
- 서버가 응답을 검증하는지는 알 수 없습니다. 서버에서 검증하지 않는다면 양식 안의 위젯은 아무도 막지 못합니다.
- 방화벽이나 요청 속도 제한처럼 페이지 앞단에 있는 보호는 HTML에 흔적을 남기지 않습니다.
- 검사는 쿠키 없이 공개 페이지만 가져오므로, 로그인이 필요한 페이지는 대상이 아닙니다.
실제 사례: 저희 가입 페이지
저희 가입 페이지에 검사를 실행했을 때, 첫 버전은 스크립트가 “로드되었다”고 하는 제공업체 두 곳을 보고했습니다. 이 페이지는 어느 쪽도 로드하지 않습니다. 원인은 페이지 자체의 데이터였습니다. “hCaptcha 대안.”이라는 메뉴 항목이 인라인 스크립트 안에 있었고, 검사가 그 단어를 제공업체의 코드로 착각한 것입니다. 인라인 스크립트는 제공업체를 호출할 때(렌더 또는 실행 호출)에만 인정하도록 규칙을 바꾸었고, 같은 페이지는 이제 전달된 HTML에서 아무것도 감지되지 않았다고 보고합니다. 이 교훈이 검사가 사실만 제시하는 이유입니다. 페이지에 있는 단어는 제공업체가 아닙니다.
결과로 무엇을 할까
- 표식이 있다면 나머지 절반을 시험해 보세요. 답변을 비우거나 틀리게 하여 외부에서 양식을 제출하고, 서버가 거부하는지 확인합니다. 표식은 위젯이 배치되어 있다는 것만 보여 줍니다.
- 제공업체 스크립트는 로드되었지만 양식에 표식이 없다면, 위젯이 어떻게 연결되는지 살펴보세요. 많은 구성에서는 페이지가 로드된 뒤 브라우저에서 위젯을 추가합니다.
- 아무것도 감지되지 않았더라도 양식이 열려 있다고 결론짓지 마세요. 서버 로그와 실제로 들어오는 요청을 확인하고, 보호가 서버에서 작동하는지 페이지 앞단에서 작동하는지 점검하세요.
- 눈에 보이는 챌린지를 교체하기로 했다면, CAPTCHA 비교 페이지에서 선택지를 비교하고 전환율 계산기로 눈에 보이는 챌린지의 비용을 확인해 보세요.
이 검사는 전달된 HTML을 처음 살펴보는 것이지 감사가 아닙니다. 페이지가 스스로에 대해 무엇을 말하는지 알아보는 데 활용하시고, 나머지는 양식을 제출해 시험해 보세요.