2012-02-11 7 views
4

처음 시작할 때 시작합니다. 나는 웹 사이트에 가입 할 때 captcha를 읽으 려 시도 할 수는 없으며 사용자를 원하지 않습니다. 나는 대안을 찾았고, 나는 checkbox captcha을 발견했다. JavaScript를 사용하여 확인란을로드하고 일반적으로 가입 양식을 작성하는 데 사용되는 것과 동일한 코드로 유효성을 검사하는 방법은 무엇입니까?체크 박스 보안 문자

감사합니다.

답변

4

내가 게시 한 기사에서 링크 된 예를 살펴 보았습니다. 언뜻보기에는 쉽게 우회 할 수있는 것처럼 보입니다.

체크 박스 captcha는 스팸봇이 웹 페이지에 삽입 된 JavaScript 코드를 구문 분석하거나 사용하지 않는다는 점에서 작동합니다. 이 때문에 검색중인 양식 내에서 captcha checkbox 요소를 찾지 못하므로 양식과 함께 확인란의 게시 값을 보내지 않으며 서버 측에서 확인란 값을 거부하면 양식을 거부합니다 보내지 않았다.

이 문제는 다음과 같습니다

  • 체크 박스의 이름은 항상 동일합니다 (gasp_checkbox)
  • 봇 쉽게 페이지에 자바 스크립트를 감지하고
  • 따라 행동하는 "훈련"수 체크 박스에 사용해야하는 임의의 이름과 값을 출력하더라도 여전히 감지 할 수 있습니다.

이러한 3 가지 문제의 결과는 이것이 많은 전자임을 의미합니다. 이미지 captcha 또는 다른 방법보다 휴식 asier. 모든 봇은 폼을 제출할 때 HTTP 요청에 gasp_checkbox=on을 추가해야합니다.

즉, 자신의 사이트에서이 기능을 구현하면 해당 봇이 그 사용이 널리 퍼지지 않았기 때문에 지나칠 수는 없습니다.

당신은 수행하여보다 안전하게 만들 수있는 다음

  • 클라이언트
  • 에 서버 측에서 체크 박스, 출력 난독 자바 스크립트에서 이러한 값을 고유 한 이름/값 쌍을 생성 봉사 스크립트에 의해 생성 된 외부 자바 스크립트 파일에서 양식에서 멀리 떨어진 곳에서 스크립트를 작성하십시오.
  • 확인란에 전송 된 값이 이전에 생성되었지만 이전에는 사용되지 않은 쌍과 일치하는지 확인합니다.

이러한 일을 수행하면 효과적인 체크 박스 보안 문자를 사용할 수 있다고 생각합니다. 누군가가 귀하의 사이트에서 그걸 알아 채지 못한다면 위의 안전 장치가 적용 되더라도 여전히 패배 할 수는 있지만 시간이 오래 걸리고 대부분의 경우 여전히 효과적 일 수 있습니다.

+0

다시 한번, 모호함을 통해 보안을 유지하는 것이 나쁘지 않습니까? http://en.wikipedia.org/wiki/Security_through_obpurity, "적군은 시스템을 알고 있습니다." – Matt

+0

그래, 나는 동의하지만, 최악의 시나리오는 사이트가 공격 대상이 될 때까지 일정 기간 동안 솔루션을 사용할 수 있도록 연락 양식 또는 스팸 메일을 받기 시작한다고 가정합니다. 다른 솔루션으로 – drew010

관련 문제