전체 글 47

vscode-server 서버에 설치 후 web으로 접근하기

기존에 작성된 code-server 설치하는 게시물이 잘 설명돼있지 않아서 내가 다시 보고도 설치하는데 어려움을 겪음 ㅋㅋ 그래서 재설치 하면서 겸사겸사 다시 글을 작성해봄 설치할 서버는 centOS7이고 이에 맞춰 code-server 버전을 맞춰줌(3.9.3version) 버전은 본인 서버에 cat /etc/os-release로 보고 gpt한테 맞는 버전 알려달라고 하면 됨. 1. code-server 설치 tar를 서버 /usr/lib에 압축 품2. 나는 터미널 끄더라도 계속 code-server를 돌릴거기 때문에 시스템에 등록함sudo systemctl daemon-reexecsudo systemctl daemon-reloadsudo systemctl enable code-serversudo s..

기록 2025.05.15

SpringBoot .pfx 인증서 적용하기

기존에 SpringBoot + thymeleaf 로 띄운 서비스가 https 인증서가 만료돼서 새로 갱신해야했다. .p12 인증서를 적용시켜놨는데 이번엔 .pfx 인증서로 적용을 시켰다. 적용방법1. application.properties 또는 application.yml 설정✅properties 예시server.port=443server.ssl.key-store=classpath:cert/your-cert.pfxserver.ssl.key-store-password=yourPasswordserver.ssl.key-store-type=PKCS12server.ssl.key-alias=yourAlias (선택 사항)✅yml 예시server: port: 443 ssl: key-store: classp..

기록 2025.05.07

[시큐어 코딩] 정적 분석 도구 : SonarQube 소나큐브

SonarQube란?Java, JavaScript, Python, C, Kotlin 등 다양한 언어의 코드 품질을 분석하고,버그, 코드 스멜(Code Smell), 보안 취약점(Security Vulnerability) 등을 자동으로 탐지해주는 도구. SonarQube특징 정적 분석 기반 자동 품질 점검보안 취약점 자동 탐지 (XSS, SQLi 등)팀 개발 시 품질 기준 공유 가능CI/CD 파이프라인에 쉽게 연동 가능무료 Community Edition도 충분히 강력SonarQube 설치1. 다운로드https://www.sonarsource.com/products/sonarqube/downloads/Community Edition(무료)으로 시작 가능2. 압축 해제 후 실행# WindowsStartSon..

기록 2025.05.02

[시큐어 코딩] 파일 업로드 취약점

파일 업로드 취약점이란?파일 업로드 취약점(File Upload Vulnerability) 은 웹 애플리케이션이 사용자로부터 파일을 업로드 받는 기능을 제대로 검증하지 않아, 공격자가 웹셸, 스크립트, 실행 가능한 악성 파일을 업로드함으로써 서버 제어권을 탈취하거나 시스템을 공격할 수 있는 보안 문제. 종류 공격 유형 설명 설명웹셸 업로드.php, .jsp 등 실행 가능한 파일을 서버에 업로드 후 직접 실행하여 서버 명령어 수행악성 스크립트 업로드.html, .svg, .js 등을 통해 XSS나 CSRF 공격 시도확장자 우회 공격filename.php.jpg / filename.pHp 등으로 필터 우회경로 조작 공격../../../../etc/passwd 같은 경로로 업로드 경로 탈출 시도 취약점 발생 ..

기록 2025.05.01

[시큐어 코딩] XSS와 CSRF

XSS (Cross Site Scripting)란?XSS 는 공격자가 웹 페이지에 **악성 스크립트(JavaScript)**를 삽입하여, 사용자의 브라우저에서 실행되게하는 공격.쿠키/세션 탈취사용자 계정 도용악성 사이트로 리디렉션피싱, 키로깅 등예시위처럼 삽입된 스크립트는 페이지 로드 시 자동 실행됨. 방어 방법출력 시 이스케이프 처리 (HTML/JS 분리CSP(Content Security Policy) 설정DOM 조작 시 .innerHTML 대신 .textContent 사용 CSRF (Cross Site Request Forgery)란?CSRF는 공격자가 피해자 브라우저를 이용해, 사용자가 의도하지 않은 요청을 서버로 보내게 하는 공격. 사용자의 권한으로 민감한 요청 보내기비밀번호 변경, 송금, 탈..

기록 2025.04.30

[시큐어 코딩] SSRF(Server-Side Request Forgery) 서버사이드 요청위조

SSRF란?SSRF(Server-Side Request Forgery) 는 공격자가 서버 측 기능을 악용해 서버 자신 또는 내부망에 존재하는 다른 시스템으로 의도하지 않은 요청을 보내도록 유도하는 공격.즉, 사용자가 서버에 조작된 URL을 전달함으로써, 외부에서 접근 불가능한 내부 리소스에 접근하거나 악용 가. 발생 원인?많은 웹 애플리케이션은 다음과 같은 기능을 제공함.URL을 받아서 이미지를 다운로드외부 웹훅 호출PDF 변환을 위한 웹페이지 렌더링URL 프리뷰 생성이때, 아래와 같은 API가 있다고 가정하면GET /fetch?url=http://example.com/image.png 공격자는 url 파라미터를 다음과 같이 바꿔 공격 가능/fetch?url=http://localhost:8080/adm..

기록 2025.04.29

[시큐어 코딩]SQL Injection이란 무엇인가?

✅ SQL Injection이란?SQL Injection은 웹 애플리케이션이 사용자 입력을 제대로 필터링하지 않고 데이터베이스 쿼리에 넣을 때 발생하는 보안 취약점이다.쉽게 말하면, 사용자가 입력하는 값에 악의적인 SQL 문장을 심어서 서버가 의도하지 않은 명령을 수행하게 만드는 공격이다.요약하면:"입력값으로 SQL 쿼리를 조작한다." ✅ 어떻게 작동할까?예를 들어, 로그인 폼이 있다고 가정SELECT * FROM users WHERE username = '입력한아이디' AND password = '입력한비밀번호'; 여기서 아이디 입력admin' -- SQL 문장은 이렇게 변합니다SELECT * FROM users WHERE username = 'admin' -- ' AND password = '비밀번호..

기록 2025.04.28

ChatGPT 챗지피티 이용한 지브리 이미지 생성(무료가능, 모바일 가능)

1. PCOpenAI ChatGPT 웹사이트에 접속(https://chatgpt.com/)로그인 후 대화창에 + 버튼 누르고 이미지 업로드 하기업로드 후 대화창에 요청 사항 입력하기 ( 디테일하게 요청할수록 원하는 결과를 받아볼 수 있음)(예시)지브리 스타일의 이미지로 바꿔줘푸른 하늘 아래 초록빛 들판이 펼쳐져 있고, 작은 오두막이 자리하고 있는 그림이었으면 좋겠어.햇살이 따뜻하게 비추고, 바람에 잔잔히 흔들리는 꽃들이 보이는 분위기로 만들어줘.✅프롬프트 작성 팁보다 정확하고 원하는 스타일의 이미지를 얻으려면 다음 요소들을 포함하는 것이 좋습니다. ✔ 스타일: "지브리 스타일의 애니메이션 그림" ✔ 장소: "푸른 하늘 아래 초록빛 들판", "고즈넉한 시골 마을" ✔ 분위기: "따뜻한 햇살", "잔잔한 바..

기록 2025.04.03

MyBatis 캐싱 문제로 SEQ.NEXTVAL 값이 갱신되지 않을 때 해결 방법

문제 : Service 클래스 내 메서드에서 @Transactional을 사용 > 해당 메서드 내에 SELECT SEQ.___.NEXTVAL FROM DUAL 시퀀스 번호 조회하는 결과값이 반복문으로 재생되는데 값이 증가하지 않는 이슈 발생(계속 같은 값이 나옴) 결과 : Mybatis 에는 두가지 캐시가 있고 캐시가 초기화 되지않아 같은 쿼리를 반복하면 기존 결과값이 계속 공유되는 현상 Mybatis 캐시 종류 1️⃣ 1차 캐시 (SqlSession 캐시, 기본 활성화됨) 같은 SqlSession 내에서 동일한 SELECT 문이 실행될 경우, DB 조회 없이 이전 결과를 반환 useCache 옵션과 관계없이 기본적으로 작동 트랜잭션이 유지되는 동안 같은 SqlSession을 사용하면, SELECT SE..

자바[Java] 2025.04.03

자바 직렬화 VS JSON 직렬화

자바 직렬화란?자바에서 직렬화(Serialization) 는 객체를 바이트 스트림(Byte Stream)으로 변환하여 저장하거나 전송할 수 있도록 하는 과정. 이를 통해 프로그램이 종료되더라도 객체의 상태를 파일, 네트워크, 데이터베이스 등에 저장할 수 있다.역직렬화(Deserialization)는 반대로 바이트 스트림을 다시 객체로 변환하는 과정. import java.io.*;class Person implements Serializable { private static final long serialVersionUID = 1L; private String name; private int age; public Person(String name, int age) { t..

자바[Java] 2025.03.20