Chapter01/Sping boot 20

[ 보안 취약점 ] 적절하지 않은 난수 값 사용 Math.random()

첨부파일 업로드 / 다운로드 기능이있느데거기서 파일명 정할때 어쩌구 저쩌구 하면서 랜덤값을 생성해야하는 부분이 있음그 때 쓰이는 코드! public class GenerateRandomString { public static String generateString() { String AlphaNumericString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789" + "abcdefghijklmnopqrstuvxyz"; StringBuilder sb = new StringBuilder(10); for (int i = 0; i 위 코드에서 이런 취약점 분석 진단을 받았다. ..

[node] 노드 버전 여러 개 사용하기

nvm으로 원하는 버전 설치하기nvm install {설치할 노드 버전}  Downloading node.js version 16.20.2 (64-bit)... Extracting node and npm... Error extracting from Node archive: open C:\Program Files\nvm\nvm\v16.20.2\node-v16.20.2-win-x64\corepack.cmd: Access is denied. Could not download node.js v16.20.2 64-bit executable.등  Access is denied 식의 에러가 뜬다면 cmd를 관리자 권한으로 실행하면 됨     설치된 버전 리스트 확인하기nvm list     사용할 버전 지정하기nvm..

[ swagger ] Failed to load remote configuration.

간단하게 테스트해볼게있어서새로 프로젝트를 하나 파서후딱 외부 API 하나만 연동해올라고스웨거 설정을 하는디         @Configurationpublic class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .csrf().disable() .authorizeRequests() .antMatchers("/v3/api-docs/**", "/swagger-ui/**", "/swagger-ui.html").permitAll() .anyRequest().authenticated(..

[ Spring boot ] BCryptPasswordEncoder BCrypt 복호화

비밀번호 같은 중요한 정보는 DB에 저장할 때 입력받은 값 그대로 저장하면 안됨  암호화 방식에는 단방향 / 양방향 이 있는데 아주 간단하게만 얘기해볼겡 단방향 암호화는 암호화는 할 수 있지만, 복호화하여 원본 비밀번호를 알 수 없다.양방향 암호화는 암호화하고, 복호화하면 원본 비밀번호를 알 수 있다.  이런것임.   지금 쓰게될  Spring Security의 BCryptPasswordEncoder 사용하는 BCrypt 방식은  회원가입의 경우를 예시로 들면회원가입을 할 때 사용자가 입력한 원본 비밀번호와랜덤으로 생성된 솔트를 결합해 생성된 해시 값이 DB에 들어가는것임! salt는 매번 랜덤하게 생성되기 때문에 동일한 비밀번호도 매번 다른 해시 값을 생성함. 그래서 해시값으로 복호화해서 원본 비밀번호..

[ SMTP 메일 전송 ] Could not convert socket to TLS

SMTP 서버 정보를 받고, 이메일 전송 테스트를 진행했다. 간단하게 컨트롤러만 만들어서 postman으로 날려봄 이런 상황이 발생했고, 이메일은 전송되지않음도메인 접속에 실패하고 ping도 안가는 상황,, ??????왜그랴 는 이제 찾아보자 써칭해본결과 PKIX path building failed 관련에러-> 서버의 인증서를 다운로드하여 키스토어에 추가해야한다? crt 파일을 만들어서 넣고 인증 어쩌구저쩌구 했으나 안됨 tls버전이 안맞는다?-> 보안문제로 기존에 지원하던 TLS버전이 지원중단되서 TLS버전이 1.0이나 1.1로 사용되는 경우가있다는것을알게됨 port문제?-> 예전에 사용했던거나 보안문제 등 여러가지 상황에 따라 25, 465, 587, 2525 등이 사용됨. 표준은..

[ error ] Port 8080 was already in use.

오랜만에 만난 이 에러,,본 김에 해결방법을 남겨보려고한다.  applicatin failed to startWeb server failed to start. Port 8080 was already in use.*************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8090 was already in use. Action: Identify and stop the process that's listening on port 8090 or configure this application to listen on another port. ..

[ Spring Boot] Spring Boot Initializr

안녕하세요!프로젝트 initialize 하는 방법을 알아보아요 오늘!  https://start.spring.io/   링크로 접속 시 위와 같은 화면을 볼 수 있궁   먼저 좌측 부분   그리고 우측에 ADD DEPENDENCIES 를 클릭해 원하는 모듈을 설치할 수 있다    이처럼 많은 종류의 모듈이 있고, 필요한 것만 골라서 추가하면 된다   Lombok: 거의 필수적으로 들어간다고 보면 됨. 클래스에 어노테이션을 사용해 @getter, @setter와 같은 패턴 메소드를  사용할 수 있다. 클래스를 간단하게 만들어주는 좋은 툴 ! Spring Web: 내장 Tomcat과 같은 웹 서비스 만들 때 중요한 모듈임. MVC 패턴구현에 필요한 기능들이 들어있으며 Rest API 를 만들 때 필요함!  ..