2011-09-05 4 views
2

사용자가 사람이면서 스크립트가 없다는 것을 증명할 수있는 슬라이더를 사용하여 멋지고 사용하기 쉬운 captcha를 등록하고자합니다.jQuery UI Slider를 사용하여 보안 captcha를 만드는 방법은 무엇입니까?

지금까지 jQuery UI Slider로 슬라이더를 구현했습니다. 값이 100이면 제출 버튼이 표시됩니다. 좋아 보인다. 나는 그 행동으로 만족스러워진다.

하지만 JS가 클라이언트에 의해 실행되기 때문에 모든 사람이 내 코드를 볼 수 있으며 스크립트를 사용하여 동일한 동작을 트리거 할 수 있습니다. 스크립트의 경우 버튼을 사용할 수 있는지 여부는 아무런 차이가 없습니다. 스크립트는 양식을 제출하기위한 데이터 만 게시하고 슬라이더 - captcha는 쓸모가 없습니다.

내 간단한 JS 코드 :

$(function() { 
     $("#slider").slider({ 
      value:0, 
      min: 0, 
      max: 100, 
      step: 50, 
      slide: function(event, ui) { 
       if(ui.value == 100){ 
        $("#amount").val("human"); 
        $("#regButton").slideDown(); 
       } else if (ui.value == 50) { 
        $("#amount").val("nerd"); 
        $("#regButton").slideUp(); 
       } else { 
        $("#amount").val("script"); 
        $("#regButton").slideUp(); 
       } 
      } 
     }); 
     $("#regButton").hide(); 
     $("#amount").val("Script"); 
    }); 

HTML :

<label for="amount" style="text-align:right;">I'm a:</label> 
     <input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold; width: 197px;" /> 
     <div id="slider"></div> 

는 보안 문자 보호기를 구축 할 가능성이 있습니까? 서버 측 해시 사용 하시겠습니까? 플래그 설정? 편지를 입력하는 것보다 멋진 UI와 약간의 사용자 경험으로 보안을 보관하는 관행은 무엇입니까?

나는 서버 측에서 Spring MVC와 함께 Java EE를 사용하고있다. 예를 들어 reCaptcha 대신 슬라이더를 사용하는 것이 좋습니다.


편집 : 슬라이더 논리에 해시 값을 추가했습니다. 서버가 등록을 시작한 날짜로 숨겨진 필드를 렌더링하기 시작할 때 서버는이 날짜를 기반으로 md5-hash를 작성합니다. 숨겨진 필드의 값을 읽고 md5-hash를 만드는 함수가 슬라이더를 움직여 호출 되었습니까? 해시 값은 해시의 servervalue와 비교하여 등록을 제출하기 전에 서버로 전송됩니다. 텍스트 captcha로 저장하는 것이 아니라 아무것도하지 않는 것보다 훨씬 효과적입니다.

내가이 발견 https://code.google.com/p/slidelock/

을 당신에게 일을? 이 녀석은 어떻게 "안전한"슬라이더를 만들었습니까? 그는 서버 사이드 밸리데이션과 SALT를 어떻게 관리합니까? 그것도 안전하거나 scripter에 대한 더 많은 비용이 드는가?

+0

링크가 고정 된 도메인으로 이동 – Neberu

+0

감사합니다. 새 주소를 추가했습니다. – Nils

답변

1

자신의 글을 작성하는 대신 기존의 보안 문자 구성 요소를 사용하는 이유는 무엇입니까?

거기에는 많은 것들이 있습니다. 무료이고 책 디지털화에 도움이되는 http://www.google.com/recaptcha을 권하고 싶습니다.

+2

첫 번째 이유는 내 서버에 모두 필요하다는 것입니다. 두 번째로 지루하지 않고 등록 양식에서도 약간의 userexperience를 제공하는 멋진 솔루션에 대한 것입니다. 예, reCaptcha는 신뢰할 수 있고 사용자 정의가 가능하며 다양한 언어를 지원합니다.나는 captcha를 구축하는 방법을 알고, 방법에 대해 알고있는 사람들이 Google 밖에서 있어야합니다 :) – Nils

+0

나는 reCaptcha도 같은 시간에 도서를 dignigize 도움이 추가하고 싶습니다, 꽤 깔끔합니다. 따라서 captcha는 실제로 사이트를 보호하는 것 이외의 목적을 제공합니다. –

+0

휴대 전화의 표준 captcha는 최악입니다. 슬라이더 방식은 섹시하지만 보안 구현이 강화되어야합니다. –

0

결론에 뛰어 들었고, 내가 미안하면 안되는 것을 게시했습니다.

나는 사용자 정의 빌드를 원한다는 것을 완전히 이해합니다. 특히 그렇게하기가 쉽습니다. 그러나 폼/애플리케이션을 안전하게 유지하는 유일한 수단이 아닌 한 슬라이더 captcha를 사용할 때 본질적으로 잘못된 점은 없습니다. 고유 한 식별자를 쉽게 가질 수 있다고 생각합니다. 사용의 용이성면에서 훨씬 뛰어나다 고 생각합니다. 나는 그것을 테스트하고 더 많은 것을 연구 한 후에 미래의 어플리케이션에서 사용할 계획이다.

관련 문제