[regex] 복수개의 정규 표현식을 매칭시키는 법??????

mixmccym의 이미지

리눅스 상에서 C언어 기반에서 sql-injection 패턴을 매칭시키고자 합니다

regex.h의 regcomp()와 regexec()를 이용하여 정규 표현식을 이용하여 패턴 매칭을 하는 구조입니다.

한개의 패턴은 매칭이 되는데요....복수개의 정규 표현식은 매칭이 안되네요...

예를 들어 아래의 형식은 and 1=1을 만나면 잘 인식이 됩니다.

#define REGEX_STRING "and\\s*[0-9]=[0-9]"

복수개를 매칭시키려면 어떻게 해야 할까요??

예를 들어 위의 and\\s*[0-9]=[0-9] 와 [0-9a-zA-Z]+['] 2개의 패턴을 동시에 적용시키기 위해서

|(OR)연산자를 사용하여
and\\s*[0-9]=[0-9] | [0-9a-zA-Z]+['] 이런식으로 작성하니까

둘다 매칭이 되지를 않습니다. 한 10개의 정규표현식을 매칭시키고자 하는데 방법이 없을까요??

많은 지도 부탁드립니다.

모지리의 이미지

답은 아니지만 걍 하나씩 하시나 여러개 매칭시키시나 성능은 같을겁니다.
그리고 중요한것은 패턴매칭쪽을 패킷에 적용하실려면 성능 문제를 정말
고려하셔야만 할겁니다. 이게 로드를 어마 어마 하게 걸죠.

garam111의 이미지

and 1+2=3 , and mod(3,2)=1 , and 3>1 ...
과 같이 수식을 다양하게 쓸 수도 있을 것 같은데요..
x = x 자체를 잡을 것이 아니라 and와 같은 것을 쓰지 못하도록 하면 되지 않나요?

===================================
행동할 때 열정은 자라난다.