✏️ 코드 에디터
취약한 코드
💡 수정 가이드
필수 필터링 특수문자:
| (파이프) - 명령어 연결
; (세미콜론) - 명령어 구분
& (앰퍼샌드) - 명령어 연결
: (콜론) - 드라이브/경로
( ) (괄호) - 서브쉘 실행
replaceAll() 사용법:
date = date.replaceAll("\\|", ""); // | 제거
date = date.replaceAll(";", ""); // ; 제거
date = date.replaceAll("&", ""); // & 제거
date = date.replaceAll(":", ""); // : 제거
date = date.replaceAll("\\(", ""); // ( 제거
date = date.replaceAll("\\)", ""); // ) 제거
⚠️ 주의사항:
• | 와 ( ) 는 정규식 특수문자이므로 \\ 로 이스케이프 필요
• Runtime.getRuntime().exec() 앞에 필터링 코드 추가
• 모든 특수문자를 빈 문자열("")로 치환
• Runtime.getRuntime().exec() 앞에 필터링 코드 추가
• 모든 특수문자를 빈 문자열("")로 치환
📊 실시간 피드백
🎯 목표
위험한 특수문자를 필터링하여 Command Injection을 방어하세요.
|- 명령어 파이프;- 명령어 구분자&- 명령어 연결:- 경로 구분자( )- 서브쉘
⚠️ 취약점
현재 코드는 Command Injection에 취약합니다!
공격자가 2024-01-01; del /F /Q * 를 입력하면
시스템 파일을 삭제할 수 있습니다.