Security Blog
보안 블로그
서비스를 만드는 사람을 위한 실무 보안 이야기. 취약점이 생기는 이유와 막는 방법을 정리합니다.
XSS 취약점이란? React·에디터·마크다운의 빈틈과 방어법
XSS 취약점이 무엇인지, React를 써도 dangerouslySetInnerHTML·리치 텍스트 에디터·마크다운·javascript: 링크에서 다시 생기는 이유를 취약한 코드와 고친 코드로 비교합니다. DOMPurify와 CSP 적용법도 함께 정리했습니다.
웹 취약점 스캐너 결과가 깨끗할 때 더 봐야 할 곳
ZAP 같은 무료 웹 취약점 스캐너가 잘 잡는 취약점과 구조적으로 놓치는 인가 누락·비즈니스 로직·다단계 흐름을 나누고, 결과가 깨끗할 때 추가로 점검할 곳을 체크리스트로 정리합니다.
SQL 인젝션 방어: ORM에서 다시 뚫리는 4곳
ORM을 써도 SQL 인젝션 방어가 끝나지 않는 이유를 설명합니다. JPA·Prisma·Sequelize에서 raw query, 동적 정렬, LIKE 검색, JSON 필터가 뚫리는 지점을 위험한 코드와 안전한 코드로 비교하고, 코드 리뷰 체크리스트도 정리했습니다.
SSRF 취약점이란? 이미지 URL·웹훅에서 생기는 원인과 방어법
SSRF 취약점이 무엇인지, 링크 미리보기·이미지 URL 가져오기·웹훅 기능에서 클라우드 키가 새는 경로와 IMDSv2·DNS 재바인딩·리다이렉트 처리까지 코드로 정리한 방어 가이드.
파일 업로드 취약점: 확장자 검사로 부족한 이유와 안전한 설계
파일 업로드 취약점을 저장 위치·파일명·Content-Type·실행 권한·다운로드 응답 다섯 단계로 나눠 설명합니다. 단계별 서버 검증 코드와 S3 presigned URL에서 놓치기 쉬운 점도 함께 다룹니다.
Next.js 보안 가이드: 미들웨어 인증만 믿으면 생기는 함정
Next.js 보안의 핵심인 인증·인가 위치를 정리합니다. 미들웨어(Proxy)만 믿는 패턴, Server Action·Route Handler 검증 누락, NEXT_PUBLIC_ 환경변수 노출을 취약한 코드와 고친 코드로 비교합니다.