2014-01-19 2 views
0

이 문제는 내가 알고있는 많은 시간에 깨어 났지만 여기에는 분명히 분명한 순간이 있습니다.세션에 암호를 저장하는 JSP

나는 최대 절전 모드로 JSP를 사용하고 있는데 나는 사용자의 인증 쓰루풋 데이터베이스의 기능성 - create user ...을 구현하고 동일한 접근법으로 로그인하고 싶다.

SessionFactory sf = new Configuration() 
     .configure("/hibernate.cfg.xml") 
     .setProperty("hibernate.connection.username", session.getAttribute("username")) 
     .setProperty("hibernate.connection.password", session.getAttribute("password")) 
     .buildSessionFactory(); 

이 취약 보인다 : 그래서 모든 내 스크립트는 로그인과 암호 현재 사용자와 내가 좋아하는 세션을 함께 할 알고있는 유일한 방법을 알아야합니까? 서버 측에서 실행되는 경우 세션에서 패스 저장소를 피해야하는 이유는 무엇입니까?

+0

HibernateSession에 대한 HttpSession과 혼동스러워합니다. 왜이 방법을 원하니? – Keerthivasan

+0

나는 여러개의 index.jsp를 가지고 있기 때문에 어떤 스크립트가 실행 된 후에 hibernateSession이 죽을 것이다. – WildDev

답변

1

예. 분명히 취약한 것처럼 보입니다. 당신은 아무 것도 암호화하지 않으므로 클라이언트의 HTTP 요청을 스니핑하는 누군가가 그녀의 사용자 이름/암호를 가로 챌 수 있습니다.

http 인증 메커니즘의 기본 방법은 잠시 후 무효화되는 토큰을 만드는 것입니다. 이 토큰은 보안 쿠키 내에서 암호화됩니다. 이렇게하면 사용자의 자격 증명이 네트워크를 통해 한 번만, 안전하게 https 연결을 통해 전송됩니다. 그런 다음 토큰 만 이동합니다. 어쨌든

, 당신은 이러한 메커니즘 자신을 구현할 필요가 없습니다, 당신은 당신이 무엇을하고 있는지 매우 확신하지 않는 한, 이러한 메커니즘 자신을 구현 안 더 정확하게 할 수 있습니다.

securing web applications의 기본 사항을 읽는 것이 좋습니다. 이러한 기능을 구현하는 가장 일반적인 방법은 forms based authentication입니다. 응용 프로그램 서버에 따라 인증 메커니즘은 이미 implemented입니다. glassfish를 사용하는 jdbc 영역에서 양식 인증과 관련하여 this post을 확인하거나, jboss를 사용하여 동일한 주제를 참조하는 this post을 확인하십시오.

희망이 있습니다.

+0

완벽 해, 고마워. – WildDev

관련 문제