몰타
20
2022-04-18 23:40:06
2
317

spring security principal 객체 비밀번호 이슈?


간단하게 spring security를 인증 후 index 페이지를 왔을 때 security tag를 통해 사용자 정보를 가져 올 때 암호화된 비밀번호도 가져올 수 있는 부분을 확인 했습니다.


아래는 index.jsp 입니다.

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

<!DOCTYPE html>
<html lang="ko" xml:lang="ko">
<head>
<title>Home Page</title>
<meta content="text/html; charset=utf-8" />
</head>

<body>
<h2>Hello World!</h2>

<hr>
<sec:authorize access="isAuthenticated()">
<p>principal : <sec:authentication property="principal" /></p>
<p>principal Name : <sec:authentication property="principal.member.name" /></p>
<p>principal Password : <sec:authentication property="principal.member.password" /></p>
</sec:authorize>
<form:form action="${pageContext.request.contextPath}/logout" method="POST">
<input type="submit" value="Logout" />
</form:form>
</body>
</html>

이슈라고 생각되는 부분

<p>principal : <sec:authentication property="principal.user.usrPw" /></p>


위 와 같이 할 경우 브라우저에 암호화된 데이터가 그대로 표현 됩니다.

물론 개발자가 저걸 표현 하진 않겠지만 이슈가 되지 않는 건가요?

다른 방식으로 암호가 전달되지 않도록 하는 방법이 있을 까요?

1
  • 답변 2

  • 천사와악마
    3k
    2022-04-19 00:23:19

    암호화된 비밀번호를 복호화 가능한가요? 에 답이 있겠죠?

    기본 설정이라면 bcyprt 겠죠? 단방향 암호화라...salt 가 노출되어도 복호화 어려울 거에요

    사용자 암호를 노출하거나 파라미터로 사용할 일이 있나요? 

  • 몰타
    20
    2022-04-19 07:15:50

    @천사와악마

    단방향암호화고 말씀해준데로 암호화방식은 bcrypt입니다.

    시큐리티를 혼자 다시 공부하다보니 궁금했었어요

    당연히  암호 데이터를 노출하거나 파라미터 사옹은 하지 않지만 이게 맞을까라는 확신의 질문이였어요


    감사합니다

  • 로그인을 하시면 답변을 등록할 수 있습니다.