✏️ Java 코드 에디터
취약한 코드
public String showBoard(String content) {
// [취약한 코드] 외부 입력값 content를 별도의 검증이나 변환 없이
// 그대로 브라우저로 출력하면 스크립트가 실행될 수 있다.
// 예: <script>alert(1)</script>
return content;
}
💡 수정 가이드 (KISA 가이드 기준)
1. replaceAll()을 이용한 치환
스크립트 태그 및 속성값에 사용되는 5대 특수문자를 안전한 HTML 엔티티로 변환합니다.
content = content.replaceAll("&", "&");
content = content.replaceAll("<", "<");
content = content.replaceAll(">", ">");
content = content.replaceAll("\"", """);
content = content.replaceAll("'", "'");
return content;
📊 분석 결과 및 설명
🎯 목표
게시판 본문 등 사용자 입력값을 출력할 때, 악성 스크립트가 포함되어 있어도 실행되지 않고 텍스트로만 표시되도록 해야 합니다.
⚠️ 현재 취약점
Stored XSS
입력값을 그대로 반환(Reflected)하거나 저장 후 출력(Stored)할 때 스크립트 실행이 가능합니다.