2013-12-13 2 views
2

checkCookie 함수를 사용하여 쿠키에 사용자 이름과 비밀번호가 있는지 확인합니다. 쿠키를 사용하는 것이 안전한 방법은 아니지만 시험 사용에만 사용됩니다. 관대하다. 처음 실행하면 사용자 이름과 암호를 묻는 메시지가 나타나며 setCookie();을 사용하여 document.cookie에 저장하고 코드를 다시 실행하면 사용자 이름 만 묻고 쿠키를 확인하여 해당 암호를 검색합니다. 아래는 내 checkCookiefunction JS입니다. -쿠키를 사용하여 자바 스크립트를 통해 사용자 이름과 비밀번호 설정

function checkCookie() { 
    var username = prompt("Please enter your name:", ""); 
    var password; 
    if (flag == 0) { //flag=0 shows cookie is not set 
    password = prompt("Please enter your password:", ""); 
    username += "!"; 
    username += password; 
    alert("Username = " + username); 
    setCookie("username", username, 365); //save input in cookie 
    } else //if cookie is already set with some username+password 
    { 
    var n = getCookie("username", username); //this retrieves the password from Cookie 
    if (n) { 
     alert("FLAG= 1 The user's password is " + n); 
    } else 
     alert("FLAG= 1 User password doesnot exist ") 
    } 
} //checkCookie function end 

이제 위의 코드와 관련하여 질문이 있습니다.

1) 초기화 값이 0 인 플래그 변수를 사용하려고하는데, 사용자 이름이 쿠키에 저장 될 때마다 플래그 값은 1이되어야합니다. C에서는 정적 변수 플래그를 선언하고, 하지만 JS에서 이것을 달성하는 방법?

2) 플러스 내 전체 자바 스크립트를 사용하면 사용자 이름에 해당하는 비밀번호를 가져올 수 있습니다. 비밀번호 입력란에 자동 입력을 사용하여 어떻게 gmail.com 웹 페이지 비밀번호 입력란을 사용할 수 있습니까?
getElementByID("password").innerHTML = password을 사용하는 경우 문서의 암호 입력란을 자동 완성합니까?

3) JSFiddle.net에서 코드를 실행하면 사용자 이름 쿠키가 저장됩니다. 하지만 JSFiddle.net을 새로 고치면 쿠키 값이 재설정됩니다! 페이지를 다시로드 할 때 쿠키 값을 영구 (고정)로 만들려면 어떻게합니까?

앞으로 좋은 제안이 있기를 기대합니다. 읽어 주셔서 감사합니다.

+0

당신은 백엔드의 어떤 종류가 있습니까? 세션 코드가 암호를 처리하도록하는 것이 좋습니다. –

+0

사용자 이름과 암호를 쿠키로 저장해서는 안됩니다. 이는 나쁜 습관입니다. 대신 세션 토큰을 데이터베이스에 저장하고 쿠키로 설정하는 로그인 페이지를 만들어야합니다. 세션 토큰 쿠키가 있으면 데이터베이스의 토큰 테이블과 비교하면됩니다. –

+0

firefox 확장 버튼을 누를 때마다 패스워드를 저장할 수 있고 자동 채우기를 할 수 있도록이 자바 스크립트를 파이어 폭스 확장 기능과 함께 사용하려고합니다! 내 다음 목표는 브라우저 간 자동 채우기 확장 기능을 만드는 것입니다. –

답변

4

:

document.getElementById("password").value = password;

이 (jsfiddle에서 테스트) 작동하는 것 같다

+0

감사합니다. 내 질문의 첫 번째 부분에서 언급 한 자바 스크립트에서 정적 변수를 사용하는 방법을 알고 계십니까? –

+0

checkCookie.password 또는 checkCookie.flag처럼 할 수 있다고 생각합니다. – TecBrat

+0

웹 페이지를 새로 고침 할 때 내 "사용자 이름"쿠키가 삭제 된 것으로 나타났습니다. 어떻게 그 가치를 지킬 수 있습니까? –

5

사용자 이름과 비밀번호가 암호화되거나 해싱 된 경우에도 사용자 이름과 비밀번호를 쿠키로 저장해서는 안됩니다. 누군가의 네트워크 트래픽을 조사하여 신원을 도용 할 수있는 나쁜 습관입니다. 사용자 이름과 암호를 쿠키로 저장하면 본질적으로 누구에게나 방송됩니다.

대신 세션 토큰과 사용자의 IP를 데이터베이스에 저장하는 로그인 페이지를 만들어 쿠키로 설정해야합니다. 사용자가 세션 토큰 쿠키를 가지고 있다면 사용자의 IP 주소와 데이터베이스의 토큰 테이블을 비교하여 로그인 여부를 확인하십시오.

같은 사람이 네트워크 트래픽을 검사하면 세션 토큰 만 있으면됩니다. 물론, 그들은 세션을 도용하기 위해 이것을 잠재적으로 사용할 수 있지만 동일한 IP 주소가 필요합니다.

이 때문에 웹 사이트는 사용자가 계정 정보를 수정할 때 항상 암호를 다시 입력해야합니다.

자세한 내용은 Wikipedia article on Session Hijacking을 참조하십시오. 내가 강의를 건너 뛰고 당신이 무엇을 요구 당신을 줄 것이다

+0

답장을 보내 주셔서 감사합니다. 현재 쿠키를 설정/가져 오는 방법을 테스트하고 있습니다. 내 광고 확장을 상업화 할 계획이라면 세션 토큰 방법을 따를 것입니다. 내 질문의 첫 번째 부분에서 언급 한 것처럼 자바 스크립트에서 정적 변수를 사용하는 방법을 알고 계십니까? –

관련 문제