사용자가 사람이면서 스크립트가 없다는 것을 증명할 수있는 슬라이더를 사용하여 멋지고 사용하기 쉬운 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에 대한 더 많은 비용이 드는가?
링크가 고정 된 도메인으로 이동 – Neberu
감사합니다. 새 주소를 추가했습니다. – Nils