본문 바로가기

All104

[DEV] XSS 회사에서 XSS 관련 보안취약점이 나와서 서버 코드상에서 방어로직을 짰는데, 다 짜고 나니 막긴 막았는데 구체적으로 어떤 식으로 XSS 공격이 재현되는지 궁금해서 개념과 함께 간단히 찾아보았다. XSS란크로스 사이트 스크립팅사용자 입력값을 제대로 검증하지 않아 악성 스크립트가 실행되도록 허용되는 보안 취약점 XSS 예시사용자가 등록한 글에 를 삽입이 값이 필터링 없이 서버에 저장됨다른 사용자가 그 글을 볼 때, 브라우저에서 스크립트가 실행됨alert("XSS")가 브라우저의 JS 엔진에 의해 실행되었음 (즉, XSS 성공) 왜 문제가 되는가?세션 탈취 가능document.cookie를 탈취하여 로그인 상태를 가로챌 수 있음악성 JS 삽입 가능광고, 트래픽 리디렉션, 피싱 링크 주입 가능다른 사용자에게.. 2025. 6. 12.
[Spring] 이름이 [spring_web]인, 둘 이상의 fragment들이 발견되었습니다. 스프링 프로젝트 실행 시에 에러가 발생하면서 실행에 실패하였다. 에러 내용Caused by: java.lang.IllegalArgumentException: 이름이 [spring_web]인, 둘 이상의 fragment들이 발견되었습니다. 이는 상대적 순서배열에서 불허됩니다. 상세 정보는 서블릿 스펙 8.2.2 2c 장을 참조하십시오. 절대적 순서배열을 사용하는 것을 고려해 보십시오. 에러 파악둘 이상의 fragment들이 발견되었다는 에러이므로 lib 디렉터리에서 확인해 보니, 정말로 이름이 spring_web으로 된 동일한 라이브러리를 발견하였다. ㄴ C:\project\target\test\WEB-INF\lib\spring-web-5.3.21.jarㄴ C:\project\target\test\WEB-.. 2025. 6. 4.
[AWS] ECR (인프런의 '비전공자도 이해할 수 있는 Docker 입문/실전' 강의를 보고 정리하였습니다) ECR(Elastic Container Registry)이란?우리가 만든 애플리케이션을 다른 사용자들이 인터넷을 통해 접속하고 사용할 수 있도록 하려면 배포 과정이 필요하다. 그런데 이 애플리케이션이 Docker 컨테이너로 배포된다면? 이미지를 저장하고 관리할 수 있는 공간이 필요하다.그 역할을 하는 것이 바로 ECR(Elastic Container Registry)이다.ECR은 AWS에서 제공하는 Docker 이미지 저장소.쉽게 말해, Docker Hub와 비슷한 역할을 하지만 AWS에서 제공하고 관리됨. ECR을 왜 사용할까?Docker Hub도 있는데 왜 굳이 AWS ECR을 사용할까?AWS 서비스와 연동이.. 2025. 6. 1.
[Security] @Secured, @PreAuthorize, @PostAuthorize 최근 보안 설정과 관련된 처리를 하면서 @PreAuthorize를 사용하며 Spring Security에서 제공하는 @Secured, @PreAuthorize, @PostAuthorize라는 세 보안 어노테이션에 대해 찾아보게 되었고, 그 김에 정리해서 올려본다. @Secured@Secured는 특정 Role을 가진 사용자만 메서드에 접근할 수 있도록 제어한다.@Secured("ROLE_ADMIN")public void adminOnlyMethod() { // 관리자만 실행 가능}특징단순 Role 기반으로 접근 제어SpEL 표현식 불가secured-enabled="true" 설정 필요 @PreAuthorize@PreAuthorize는 메서드 실행 전에 권한과 조건을 평가한다. SpEL(Spring .. 2025. 5. 27.
[AWS] 배포와 EC2 (인프런의 '비전공자도 이해할 수 있는 Docker 입문/실전' 강의를 보고 정리하였습니다) 배포란?배포 (Deployment)다른 사용자들이 인터넷을 통해서 사용할 수 있게 만드는 것우리가 만든 웹 페이지나 서버를 다른 사람들이 사용하려면 인터넷상에 배포가 되어있어야 함배포하게 되면 ip나 도메인과 같이 고유의 주소를 부여받게 되고, 다른 컴퓨터에서 그 주소로 접속할 수 있게 된다. EC2란?EC2 (Elastic Compute Cloud)AWS에서 제공하는 가상의 컴퓨터 서비스. 컴퓨터를 빌려서 원격으로 접속해 사용하는 방식.EC2를 왜 사용할까?집에서 내 컴퓨터로 서버를 돌리면 24시간 켜야 하고, 보안상 위험할 수 있다.EC2는 이런 문제를 해결해주고, 로깅, 오토스케일링, 로드밸런싱 같은 부가기.. 2025. 5. 24.
[Postgres] pgAdmin을 통해 데이터 Backup / Restore 회사에서 테스트 DB를 백업하거나 로컬 환경으로 복원해야 할 일이 종종 생긴다. 오늘은 pgAdmin을 이용해서 PostgreSQL 데이터베이스를 백업하고 복원하는 방법을 정리해 보았다. 1. 환경정보PostgreSQL 14pgAdmin 4 (Windows 환경 기준)대상 DB 이름: local_design_test_backup 2. 백업하기 (Backup)1) 백업할 DB Backup... 하기pgAdmin 실행 후 왼쪽 트리에서 백업 대상 DB를 우클릭 → Backup... 클릭2) 백업 옵션 설정Filename : 백업 파일 저장 경로 입력 (예: C:\Users\Test\Documents\test_backup.backup)Format : Custom 선택 (기본값)Encoding : 문자 인코딩 .. 2025. 5. 22.
[Docker] Docker Compose - 예제 (도커 강의 정리 #6) 비전공자도 이해할 수 있는 Docker 입문/실전 (박재성)#1. Docker 기본 개념#2. Docker 기본 CLI#3. Docker Volume#4. Dockerfile#5. Docker Compose #6. Docker Compose - 예제 (해당 글) MySQL, Redis 컨테이너 동시에 띄워보기 Docker Compose여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있게 도와주는 툴.컨테이너 여러 개를 동시에 띄우는 경우에 사용.실행할 때 작성한 복잡한 명령어를 간소화시킬 수 있음.services: my-db: image: mysql environment: MYSQL_ROOT_PASSWORD: 1234 vo.. 2025. 5. 16.
[DEV] MCP(Model Context Protocol) 최근 다양한 AI 모델들이 등장하면서, 단일 모델로는 해결할 수 없는 복합적인 작업이 늘어나고 있다. 예를 들어, 내가 원하는 작업이 아래와 같다고 할 때, 단순한 텍스트 생성만으로는 해결할 수 없다.“이 구글 드라이브에 저장된 회의록을 요약해서 슬랙에 공유해 줘.”외부 문서 접근, 내용 요약, 메시지 발송이라는 여러 도구와 데이터 출처가 함께 작동해야 가능한 일이기 때문.이 복잡한 연결을 가능하게 만드는 기술이 바로 Model Context Protocol(MCP)이다.이번 글은 MCP가 무엇인지, 왜 사용하는지 등에 대해 GPT에게 질문을 하고 이해하고 다시 질문을 하며 정리를 한 내용이다. MCP란?Model Context Protocol(MCP)은 AI 모델이 외부 시스템(API, 문서, 앱 등.. 2025. 5. 9.
[Docker] Docker Compose (도커 강의 정리 #5) 비전공자도 이해할 수 있는 Docker 입문/실전 (박재성)#1. Docker 기본 개념#2. Docker 기본 CLI#3. Docker Volume#4. Dockerfile#5. Docker Compose (해당 글) Docker Compose를 사용하는 이유여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있게 도와주는 툴.컨테이너 여러 개를 동시에 띄우는 경우에 사용.실행할 때 작성한 복잡한 명령어를 간소화시킬 수 있음. 예시 : Nginx 설치 및 실행docker cli로 nginx 컨테이너 실행 할 때$ docker run --name webserver -d -p 80:80 nginx docker compose 사용하여 실행 할 때파일명은 compos.. 2025. 5. 8.