2013-02-18 4 views
0

jQuery 유효성 검사 엔진과 함께 작동하는 암호 해시를 가져 오는 데 문제가 있습니다. 문제는 주어진 암호를 해시 할 수 없다는 것입니다.jQuery 유효성 검사 엔진 및 Sha512와 해시

이것은 내가 지금까지 가지고있는 것입니다.

<script> 
    jQuery(document).ready(function() { 
    jQuery("#form").validationEngine('attach', 
    {onValidationComplete: function(form, status){ 
     if (status == true) { 
      $("form#form").bind('submit', function(e) { 
        e.preventDefault(); 
      }); 

      function formhash(form, password) { 
       var p = document.createElement("input"); 
       form.appendChild(p); 
       p.name = "p"; 
       p.type = "hidden"; 
       p.value = hex_sha512(password.value); 
       password.value = ""; 
       form.submit(); 
       } 
     } 
    } 
    }) 
    }; 
    </script> 

제출 후 처리 스크립트를 실행하면 해시되지 않은 암호를 찾아서 사용할 수 있지만 그만큼 좋지 않습니다.

내가 뭘 잘못하고 있니?

편집 : 필자는 함수 (formhash)를 분리하여 자바 스크립트와 추가 "배경 유효성 검사"를 적용하고 별도의 파일에 넣어서 onsubmit = "return validate (this);를 추가했습니다. 양식 헤더에. 그다지 예쁜 것은 아니지만 그 트릭을하는 것처럼 보입니다.

개선안에 대한 제안은 여전히 ​​환영 받고 있습니다.

<script type="text/javascript"> 
    function validate(form) { 
    var reason = ""; 

    reason += validatePassword(form.password); 

    if (reason != "") { 
    return false; 
    } 
    formhash(form, form.password) 
    return true; 
    } 

    function validatePassword(fld) { 
    var error = ""; 

    if (fld.value == "") { 
     error = ""; 
    } 
    return error; 
    } 
    </script> 
+1

어딘가에'formhash (.., ..)'를 실행합니까? – cIph3r

+0

폼 헤더에서 onsubmit으로 호출하려고했습니다. 그 결과 유효성 검사가 실패한 경우에도 양식이 제출되었습니다. – Markus

+0

그러나 해시를 계산하고 절대로 호출하지 않는이 함수에서 원래 암호를 지울 때 어떻게 암호가 사라질 것으로 예상합니까? – cIph3r

답변

0

그것은 조금 늦게, 그러나 나는 같은 질문을했다 아무 대답을 찾을 수 없습니다, 그래서 내가 그것을 해결 방법 공유하고 싶습니다 :

function reghash(form, password, confirmation) { 
var p = document.createElement("input"); 
form.appendChild(p); 
p.name = "p"; 
p.type = "hidden"; 
p.value = hex_sha512(password.value); 
password.value = "123456"; 
confirmation.value = "123456"; } 

나는이에서 form.submit();을 제거하고 있습니다를 제출 버튼에 onclick을 사용하여 함수를 호출합니다. jquery 폼 유효성 검사에서 허용되는 최소 길이를 간단히 일치시킴으로써 암호 및 확인을 안전한 값으로 변경했습니다. 이렇게하면 유효성 검사 기능이 양식 제출을 방해하지 않습니다.

관련 문제