ReDoS attacks

테스트

example.js
1
2
3
console.time(0);
/^(([a-z])+.)+[A-Z]([a-z])+$/g.test('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!');
console.timeEnd(0);
  • a가 많아질수록 급격하게 평가하는데 오래 걸리는 모습이다
  • 복잡한 정규식을 짤 때 성능 테스트가 동반되어야 할 것 같다
  • 인풋의 길이 등 사전에 필터링해줄 수 있는 것들은 필터링해주면 좋을 것 같다

참고