2019/07 6

[Spring] Bcrypt를 이용하여 비밀번호를 암호화하여 저장하는 방법 - 실제 프로젝트 적용기

암호화를 이용하여 원문을 해시화하는 간단한 방법을 찾던 중 Devglan 사이트에서 괜찮은 칼럼을 찾았다. https://www.devglan.com/spring-mvc/storing-hashed-password-database-java 다음 내용은 위 칼럼을 번역한 내용이다. 단순 텍스트에 비밀번호를 저장하는 것은 보안상 매우 취약하다. 이 글에서는 자바를 이용하여 데이터베이스에 해시된 패스워드를 저장하는 방법을 다룬다. 이렇게 한다면 BDA들 조차도 실제 패스워드를 빼내기 불가능하다. 기존의 MD5, SHA-1, SHA-2로 패스워드를 해싱할 수도 있지만 솔트를 치는것은 추가적인 보안을 만들 수 있다. (여기서 솔트를 친다는 말은 원문에 추가적인 문자열을 넣어서 해시를 강화한다고 이해하면 된다) 이 ..

[Spring] Spring Interceptor (인터셉터)와 WebTestClient Session (세션) 테스트 적용기

Spring의 인터셉터 사용과 그것을 테스트하는 WebTestClient에 대해서 다뤄보려고 한다. 특히나 로그인 같은 기능을 구현하는 경우 서버측에서 세션을 생성하게 되는데 그것을 어떻게 하면 간단히 테스트할 수 있는지 알아보자. 먼저 인터셉터가 어떻게 작동하는지 그림을 보자. 인터셉터는 요청을 가로채는 역할을 한다. DispatcherServlet 이전에 가로챌것 처럼 보였지만 사실은 그 이후에 요청을 가로챈다. DispatcherServlet 이전의 요청을 거치는 것은 Filter의 역할로 볼 수 있다. 그리고 중요한 점은 인터셉터는 핸들러 이전을 가로채지만 그 이후도 처리할 수 있다는 점이다. (그림을 보면 핸들러 작업 이후 다시 인터셉터로 들어가는 모습을 볼 수 있다. 잠시 후 코드로 내용을 확..

[우아한테크코스] 7주차 후기 - 데이터베이스 설계와 마지막 미션

6/17 (월) 프로그래밍 (체스) - 6/18 (화) 강의 (자바스크립트 기초), 프로그래밍 (체스) 6/19 (수) 프로그래밍 (체스) 6/20 (목) 프로그래밍 (체스) 6/21 (금) 강의 (데이터베이스 설계) 6/22 (토) 외부일정 강의: 데이터베이스 설계 제한된 시간안에 테이블을 설계해야 하는 과제가 있었다. 타임어택으로 차등을 매기거나 그런것은 아니다. 단지 한정된 강의 시간안에 다뤄야 할 것들이 조금은 많았을 뿐이었다. 데이터베이스 설계는 크게 3가지로 나뉘어진다. 개념적 데이터 모델링: 개념 데이터 모델이란 업무 요건을 충족하는 데이터의 주제 영역과 핵심 데이터 집합을 정의하고 관계를 정의한 모델을 의미한다. 즉 큰 그림을 먼저 그리는 것이다. 논리적 데이터 모델링: 개념 데이터 모델링..

[Java] 자바의 String 클래스의 특별성 간단 정리

https://www3.ntu.edu.sg/home/ehchua/programming/java/J3d_String.html String is Special - Java Programming Tutorial A Brief Summary of the String Class A Java String contains an immutable sequence of Unicode characters. Unlike C/C++, where string is simply an array of char, A Java String is an object of the class java.lang. Java String is, however, special. Unlike an or www3.ntu.edu.sg 참조 원문입니다. ..

[Java] 자바 자료형(primitive, reference) 에 대한 고찰 - 자바 Integer에 캐시가 있다고?

자바 자료형에 대한 고찰 - 자바 Integer의 캐시기능 참조링크 원문: https://medium.com/@njnareshjoshi/java-integer-cache-why-integer-valueof-127-integer-valueof-127-is-true-e5076824a3d5 Java Integer Cache — Why Integer.valueOf(127) == Integer.valueOf(127) Is True posted by Naresh Joshi on November 25, 2018 medium.com https://nulpointerexception.com/2018/01/06/int-vs-integer-java-application-memory-usage/ 초반부 내용은 다음 원문을 번..

[Docker] Docker의 이미지 변조를 막는 원리 - Docker Content Trust

Docker Content Trust Docker는 Docker Content Trust (DCT)라는 기능으로 악의를 가진 제3자의 행동들로 부터 사용자를 보호한다. https://docs.docker.com/engine/security/trust/content_trust/ Content trust in Docker When transferring data among networked systems, trust is a central concern. In particular, when communicating over an untrusted medium such as the internet, it is critical to ensure the integrity... docs.docker.com Dock..

반응형