2011-04-27 6 views
0

나는 양방향 암호화를 사용하여 db에 사용자 이름과 암호를 저장했습니다. 나는이 같은 JS 양식을 사이트에 로그인하려면 다음을 사용하고 싶습니다 :일반 텍스트 암호없이 자바 스크립트 양식 제출

 var form = document.createElement("form"); 
     form.setAttribute("method", "post"); 
     form.setAttribute("action", "http://www.someloginscript.com/"); 
     var f = document.createElement("input"); 
     f.setAttribute("type", "text"); 
     f.setAttribute("name", "username"); 
     f.setAttribute("value", myUser); 
     var f1 = document.createElement("input"); 
     f1.setAttribute("type", "text"); 
     f1.setAttribute("name", "password"); 
     f1.setAttribute("value", myPass); 
     form.appendChild(field); 
     form.appendChild(f1); 
     document.body.appendChild(form); 
     form.submit(); 

내가 먼저 암호를 해독해야하는이 작업을 수행하지만, 암호를 사용하여 양식을 제출하고 싶습니다. 암호를 해독하면 암호가 '요소 검사'기능을 통해 표시됩니다. 나는 분명히 이것을 원하지 않는다.

제가 정확히 원하는 것을 수행하는 www.clipperz.com이라는 사이트를 발견했습니다. 그러나 어떻게 확신 할 수 없습니다. http://sourceforge.net/projects/clipperz/에서 오픈 소스 암호화 라이브러리를 구현해야합니까? 아니면 모든 연기와 거울이 더 안전하게 보이게 할 수 있습니까?

감사합니다.

편집 : 이제 보안 방법이 없음을 알았습니다. 컬을 사용하여이 양식을 제출하는 것이 더 안전한 방법입니까? 내가 암호 서버 측의 모든 처리를 유지할 수있는 이런 식으로?

+0

바보 같지만'f1.setAttribute ("type", "text") 대신에'f1.setAttribute ("type", "password");' – anu

+0

시도 했습니까?이 문자열은 읽을 수 있습니다. 오래 전에. 어떤 단계에서 변수를 검색하고 해독하고 저장해야합니다. 해독 후 어느 스테이지에서나 일반 텍스트입니다 – user727085

답변

1

사용자가 타사 사이트로 전송하는 모든 정보는 사용자 브라우저에서 사용 가능해야하며, 그 시점에서 정보를 조사하고 정보를 얻을 수 있습니다.

또는 컴퓨터에서 HTTP 요청을 볼 수도 있습니다.

요점은 어느 시점에서든 컴퓨터에서 암호가 해독 된 상태에 있어야하는 경우 사용자의 컴퓨터에 대한 정보를 사용자로부터 숨길 수 없다는 점입니다.

+0

응답 해 주셔서 감사합니다. 이것은 완벽하게 이해할 수 있습니다. 따라서이 양식 서버 측을 제출하는 방법이 있다는 것을 의미합니까? 아마 이것은 http://www.clipperz.com이 그것을하는 방법입니까? – user727085

+0

Clipperz는 사용자로부터 암호를 숨기지 않는 것처럼 보입니다. 사용자가 직접 입력하지 않아도되는 방법을 제공합니다. – Gareth

2

정확하게 지정하지 않았지만 특정 사이트에서 Javascript를 사용하여 다른 사이트로 로그인하는 과정을 자동화하려는 것 같습니다. 그 맞습니까? 또한 모든 사용자에게 일반 로그인을 사용하려는 것처럼 들리지만 사용자가 볼 수 없게해야합니다.

나는 이것이 당신이 그것을하려는 방식으로 실행 가능할 것이라고 생각하지 않습니다. 문제는 브라우저의 사용자가 자바 스크립트 코드와 Firebug와 같은 도구를 통해 사용하는 모든 데이터에 대한 완전한 액세스 권한을 갖고 있다는 것입니다. 이 도구를 사용하면 페이지가로드 된 후 코드를 수정할 수 있습니다.

간단히 말해서 자바 스크립트가 사용자에게 데이터를 볼 수있는 권한을 부여하지 않고 데이터를 처리 할 수있는 방법이 없습니다.

나는 다음과 같이 더 나은 방법이 무엇인가를 할 수있는 제안 :

  • 사이트 1은 사용자가 로그인하기를 원하는 알려주, 사이트 2에 메시지를 보냅니다. 사용자 IP 주소, 사용하려는 로그인 세부 정보 및 기타 관련 세부 정보를 알려줍니다.

  • 사이트 2는 사이트 1이 사이트의 사용자 브라우저로 보내는 토큰 코드로 사이트 1에 응답합니다.

  • 사용자 브라우저의 Javascript 코드는 로그인 이름과 암호 대신 사이트 2에 토큰을 게시합니다.

  • 사이트 2는이 사이트를 사이트 1에 방금 준 토큰으로 인식하고 IP 주소에서 왔으며 사용자가 정상적인 로그인 세부 정보 집합을받은 것처럼 사용자를 기록합니다.

이 과정은 분명히 두 사이트 1 사이트 2에 코드를 작성하는 데 필요한, 그래서 당신은 둘 다에 대한 모든 권한을 가지고 있습니다. 사이트 2가 타사 시스템 인 경우 다른 사이트를 찾아야 할 수도 있습니다.

+0

포괄적 인 응답을 환호합니다. Site2는 타사 사이트이므로 다른 것을 제안해야합니다. 아마 곱슬 곱슬하게 양식을 제출하는 더 안전한 방법이 될 것입니까? – user727085

+1

컬은 실제로 훨씬 더 안전합니다. 하지만 로그인은 사용자 PC가 아닌 서버에 묶여 있다는 단점이 있습니다. 사용자의 PC에서 후속 요청을 수행해야하는 경우 일이 작동하지 않을 수 있습니다. (서버를 통해 모두 라우팅 할 수 있지만 동시 사용자가 여러 명있는 경우에는 잘못됩니다). 가장 좋은 방법은 사이트 2의 소유자에게 연락하여 요구 사항을 논의하는 것입니다. 그들은 이미 API를 가지고 있거나 내가 설명한 것과 유사한 솔루션으로 당신과 함께 할 의향이 있습니다. – Spudley

관련 문제