
220
2
부
공격
14.1
정규 표현식
DoS
정규 표현식
DoS
regex
DoS
(
ReDoS
) 취약점은 오늘날 웹 애플리케이션에서 가장 일반적인
DoS
형태다. 이러한 취약점의 위험 수준은 매우 경미한 수준에서 중간 정도인 것이 대부분이며 정
규 표현식 파서의 위치에 따라 달라질 때가 많다.
정규 표현식은 웹 애플리케이션에서 사용자가 폼의 필드에 입력한 것이 서버에서 기대하는 것
과 일치하는지 검증하는 데 많이 사용된다. 패스워드 필드에 사용할 수 있는 문자만 입력을 허
용한다든지 댓글이
UI
에 잘 어울려 보이게 댓글의 글자 수를 제한하는 것을 예로 들 수 있다.
정규 표현식은 원래 수학자들이 문자열의 집합과 부분집합을 매우 간결한 방식으로 나타내는
형식 언어
formal
language
이론을 연구하는 과정에서 설계됐다. 오늘날 웹에 사용되는 프로그래밍
언어는 대부분 정규 표현식 파서를 내장하며 자바스크립트에도 있다.
자바스크립트의 정규 표현식은 두 가지 방식이 있다.
const myregex = /username/; // 리터럴(literal) 정의
const myregex = new regexp('username'); // 생성자
정규 표현식은 광범위한 주제이므로 여기서 전체를 다루지는 않는다. 그렇지만 일반적으로 텍
스트의 검색과 매칭이 빠르고 강력하므로,