승워이
20
2019-05-28 11:28:13
5
245

보통 jsp간 비밀번호값을 전달할 땐 어떻게 하나요?


안녕하세요.. 이제 막 개발배우기 시작한 초보입니다..!

현재 웹 페이지에 회원정보를 받고 그 비밀번호를 암호화 해서 저장하려고 합니다.

제가 생각하고 있는 방법은

signup.jsp (폼에서 아이디, 비밀번호, 정보 입력받고 값 전달)

-> _signup.jsp(회원정보 디비에 저장하고 비밀번호 해싱해서 저장)

이렇게 하려고 하는데요

signup.jsp와 _signup.jsp간에 값을 넘겨줄 때의 보안 문제는 없나요? 검색해보니까 GET방식보다 POST방식이 좋다

이정도 밖에 못 찾겠네요 ..ㅠㅠ 개인정보나 비밀번호같은 민감한 정보를 주고받을때도 POST방식만으로 괜찮은건가요?

0
0
  • 답변 5

  • Frudy
    3k
    2019-05-28 11:33:57

    POST방식으로하면, URL에 적히지않기 때문에 좋다고 하는거에요.

    GET방식으로 하면

    signup.jsp?userid=dbcde&password=12345 이렇게 옆에 붙어서 날라가거든요.


    저같은경우 jsp --> jsp에서

    POST방식으로만 보냈고 별다른 조치를 여기서하지는 않았습니다.


    단지.. 사용자의 웹브라우저에 쿠키에 남길때는

    암호화토큰을 만들어서 남겼을 뿐이에요.

    1
  • 르매
    560
    2019-05-28 12:02:28 작성 2019-05-28 12:08:41 수정됨

    GET 방식이면 URL에 패스워드가 보이기 때문에 당연히 POST여야 하구요. 하지만 패킷이 스니핑되면 소용없는데 이 부분은 HTTPS 로 해결합니다.

    SSL 인증서를 통한 HTTPS 통신으로 주고 받는 정보는.. 스니핑에 대해서는 안전하다고 보셔도 됩니다.


    또 한가지.. 서버에서 패스워드를 hash해서 저장하는 건 맞는데, 만약 DB가 유출되면 약하게 hash된 패스워드는 원문이 무엇인지 유추가 가능합니다. (요즘은 CPU 연산 능력이 워낙 강력해서..)

    그러니까.. hash 하는 방식도 고민이 필요하다는 의미이구요. 그 부분은 아래 링크의 글에 잘 나와 있으니 한 번 읽어 보시기 바랍니다.

    https://d2.naver.com/helloworld/318732

    1
  • Frudy
    3k
    2019-05-28 12:04:13

    하지만 패킷이 스니핑되면 소용없는데 이 부분은 HTTPS 가 해결해 줍니다.

    //

    아하 그렇군요..
    저도 배워갑니다.

    0
  • Frudy
    3k
    2019-05-28 14:17:36

    저같은경우는...


    1차시도 : 문자열의 아스키코드값을 특정 규칙에 따라 바꾸고 순서를 서로 섞었었습니다.

    >>

    (A를 $로 바꾼다던가...) 복호화가 분명 가능해서 위험해서 포기..


    2차시도 : 문자열의 아스키코드값을 모두 더한 long타입의 값을 저장

    >>

    복호화는 불가능하지만 위 링크에 나온 방법에 의해 위험이 있어서 포기...


    3차시도 : 2차처럼 다른 중요정보를 long타입으로 저장하는대신 추가로..

    browser마다 난수값의 쿠키를 저장하고, (browserid), 

    이걸 DB에도 저장하고, 자동로그인같은 경우 browserid까지 체크했었습니다.


    >>

    난수라서, 아무리 고성능 CPU를 돌려봤자 노답이라고 자신했으나..

    쿠키가 털리는 경우의수도 있다고 하니...


    4차시도 : ip주소도 같이 저장하려고 준비중입니다 ㅡㅡ;

    0
  • GAN
    1k
    2019-05-28 15:08:34

    HTTPS 를 못 쓸 경우

    짧은 내용일 경우 RSA 를 사용해서 암호화 하거나
    http://kwon37xi.egloos.com/4427199

    긴 내용일 경우 RSA 를 사용해서 대칭키를 교환 후 대칭키 암호화를 할 수도 있습니다.
    https://myshare.tistory.com/9

    그냥 HTTPS 사용하는게 제일 편해요...

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