2011-10-07 2 views
0

구글 서블릿을 구글 앱 엔진과 함께 사용하고 있습니다. 한 서블릿에서 다른 서블릿으로 패스 및 사용자 이름을 전달하는 안전한 방법이 필요합니다. 좋은 방법이 무엇입니까?서블릿에서 다른 보안으로 패스워드와 사용자 이름을 전달하는 방법

감사합니다.

+0

정보를 보내기 전에 암호화하십시오. –

+0

그 후 해시를해야합니까? –

+0

귀하의 요구 사항에 따라 다릅니다. 나는 암호의 sha256 암호화를하고 그것을 데이터베이스에 직접 저장할 것입니다. 사용자 이름은 그대로 전달할 수 있습니다. 모범 사례로서 일반 텍스트 암호를 어디에도 저장하지 않아야합니다. –

답변

2

경우 범위, 단지 요청 속성으로 전달합니다. 데이터, 범위 세션을 할 단지 세션 범위에 저장해야하는 경우

User user = (User) request.getAttribute("user"); 
// ... 

:로

User user = new User(username, password); 
request.setAttrubute("user", user); 
request.getRequestDispatcher("/otherServletUrl").forward(request, response); 

은 다른 서블릿에서는 사용할 수 있습니다. 이것은 리디렉션에서도 지속됩니다.

User user = (User) request.getSession().getAttribute("user"); 
// ... 

이 공개적으로 노출되지 않기 때문에이 정보를 암호화 할 필요가 전혀 없습니다 :

User user = new User(username, password); 
request.getSession().setAttrubute("user", user); 
response.sendRedirect(request.getContextPath() + "/otherServletUrl"); 

은 다른 서블릿에서 그것은으로 사용할 수 있습니다. 데이터는 모두 서버 메모리에 저장됩니다. 암호 만 전달하는 것이 얼마나 유용한 지 궁금합니다. 대개 로그인시 유효성을 검사 한 데이터베이스에 보관 한 다음 사용자 식별자 만 전달하면됩니다.

관련 문제