크로스 사이트 스크립팅
공격자가 게시글, 댓글, 프로필 같은 입력값에 악성 스크립트를 넣고, 다른 사용자의 브라우저에서 실행되게 만드는 웹 취약점이다. React처럼 기본적으로 문자열을 이스케이프하는 프레임워크를 써도, dangerouslySetInnerHTML, Markdown/HTML 렌더러, 외부 위젯 삽입을 잘못 쓰면 XSS가 생길 수 있다. 바이브 코딩에서는 AI가 빠른 표시를 위해 HTML을 그대로 렌더링하는 코드를 제안할 수 있으므로, 사용자 입력은 정화(sanitize)하고 필요한 태그만 허용해야 한다.
예시
Q&A 답변이나 댓글을 Markdown으로 보여줄 때 원문 HTML을 그대로 넣지 않는다. 렌더러에서 script 태그와 이벤트 속성을 제거하고, 링크에는 안전한 프로토콜만 허용하는지 테스트한다.
참고
AI가 생성한 public renderer를 검토할 때 가장 먼저 확인해야 하는 취약점 중 하나다.
카테고리
보안·인증
난이도
basic
태그
XSS · 웹보안
함께 읽기
연관 용어
보안·인증
쿠키
웹사이트가 브라우저에 저장해 두는 작은 데이터 조각이다. 로그인 상태 유지, 장바구니, 언어 설정처럼 다음 방문에도 기억해야 하는 정보를 담을 때 쓰인다. 편리하지만 인증 쿠키를 잘못 다루면 계정 탈취 위험이 생기므로 httpOnly, secure, sameSite 같은 보안 옵션을 함께 이해해야 한다.
보안·인증
세션
사용자가 사이트에 접속해 있는 동안 서버가 유지하는 상태 정보이다. 보통 브라우저에는 세션 ID만 쿠키로 저장하고, 실제 로그인 사용자 정보와 권한은 서버나 데이터베이스에 둔다. 바이브 코딩에서 로그인 기능을 만들 때 세션과 쿠키의 차이를 이해하면 민감한 사용자 정보를 브라우저에 과도하게 저장하는 실수를 줄일 수 있다.
보안·인증
교차 출처 리소스 공유
브라우저가 한 출처의 웹 페이지에서 다른 출처의 API를 호출할 때 적용하는 보안 규칙이다. 프론트엔드와 백엔드 도메인이 다르면 서버가 어떤 출처를 허용하는지 응답 헤더로 알려줘야 한다. 바이브 코딩 초보자가 '브라우저에서는 막히는데 터미널 curl은 된다'는 상황을 만날 때 CORS가 원인인 경우가 많다.