유틸리티 소개

XSS 공격 패턴을 정규표현식으로 필터링하기

사용자 입력에서 스크립트 태그나 이벤트 핸들러를 찾아내는 데 정규표현식을 쓸 수 있다.

script 태그 찾기

script 태그 패턴을 찾는다. 대소문자 무시 플래그가 필수다. 정규표현식 테스터에서 여러 변형을 테스트해보자.

이벤트 핸들러

onclick, onmouseover 같은 이벤트 핸들러도 XSS에 쓰인다. on으로 시작하는 속성을 찾는 패턴이 필요하다.

인코딩 우회

공격자는 HTML 엔티티, URL 인코딩으로 우회를 시도한다. 정규표현식만으로 완벽한 방어는 불가능. HTML 새니타이저 라이브러리를 쓰는 게 안전하다. 테스터는 기본 패턴 검증용으로만.

에러 처리 고려하기

잘못된 정규표현식은 런타임 에러를 일으킬 수 있다. 동적으로 패턴을 만들 때는 try-catch로 감싸거나 미리 검증하자. 정규표현식 테스터에서 문법 오류를 미리 확인할 수 있다.

유니코드 처리

한글이나 이모지 같은 유니코드 문자를 처리할 때는 u 플래그가 필요할 수 있다. 다국어 지원이 필요하면 유니코드 문자 클래스를 활용하자.

보안 측면에서

사용자 입력으로 정규표현식을 만들면 ReDoS 공격에 취약할 수 있다. 신뢰할 수 없는 입력을 패턴으로 쓰지 말고, 꼭 필요하면 타임아웃을 설정하자. 테스터로 다양한 입력에 대한 동작을 확인하고 안전하게 사용하자.

정규표현식 테스터에서 실시간으로 패턴을 테스트하고 결과를 확인하면서 학습하면 정규표현식 실력이 빠르게 늘어난다.