반응형
ReDos Attack
- Regular expression Denial of Service (ReDoS)
- 자바를 포함한 대부분의 정규식 구현 모듈이 특정 조건에서 컴퓨터의 자원을 독점할 수 있다는 약점을 이용한 공격법.
ReDos Attack 예시
var r = /([a-z]+)+$/
var s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaa!'
console.log('Running regular expression... please wait')
console.time('benchmark')
r.test(s)
console.timeEnd('benchmark')
해결법
- safe-regex 모듈로 안전한 regex인지 판단 후 사용하도록 변경
yarn add safe-regex
import safe from 'safe-regex';
var r = /([a-z]+)+$/;
var s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaa!';
if (!safe(r)) {
throw new Error(`unsafe regex - ${r}`);
}
console.log('Running regular expression... please wait');
console.time('benchmark');
r.test(s);
console.timeEnd('benchmark');
반응형
'Development > Security' 카테고리의 다른 글
[Security] XSS, CSRF (0) | 2021.05.30 |
---|---|
[Security] Reflected XSS (0) | 2020.12.30 |