Nov
DEC
Jan
02
2019
2020
2021
About this capture
Web crawl data from Common Crawl.
T h e W a y b a c k M a c h i n e - h t t p : / / w e b . a r c h i v e . o r g / w e b / 2 0 2 0 1 2 0 2 1 1 1 3 0 7 / h t t p s : / / g i t h u b . c o m / s p i d e r l a b s / m o d s e c u r i t y /
S k i p t o c o n t e n t
/ ; r e f _ c t a : S i g n u p ; r e f _ l o c : h e a d e r l o g g e d o u t " >
S i g n up
●
F e a t u r e s →
● C o d e r e v i e w
● P r o j e c t m a n a g e m e n t
● I n t e g r a t i o n s
● A c t i o n s
● P a c k a g e s
● S e c u r i t y
● T e a m m a n a g e m e n t
● H o s t i n g
● M o b i l e
● C u s t o m e r s t o r i e s →
● S e c u r i t y →
●
●
●
● E x p l o r e G i t H u b →
L e a r n & c o n t r i b u t e
● T o p i c s
● C o l l e c t i o n s
● T r e n d i n g
● L e a r n i n g L a b
● O p e n s o u r c e g u i d e s
C o n n e c t w i t h o t h e r s
● E v e n t s
● C o m m u n i t y f o r u m
● G i t H u b E d u c a t i o n
● G i t H u b S t a r s p r o g r a m
●
●
P l a n s →
● C o m p a r e p l a n s
● C o n t a c t S a l e s
● N o n p r o f i t →
● E d u c a t i o n →
In this repository
All GitHub
↵
Jump to
↵
No suggested jump to results
{ { m e s s a g e } }
●
W a t c h
3 4 7
●
S t a r
4 k
●
F o r k
1 . 1 k
M o d S e c u r i t y i s a n o p e n s o u r c e , c r o s s p l a t f o r m w e b a p p l i c a t i o n f i r e w a l l ( W A F ) e n g i n e f o r A p a c h e , I I S a n d N g i n x t h a t i s d e v e l o p e d b y T r u s t w a v e ' s S p i d e r L a b s . I t h a s a r o b u s t e v e n t - b a s e d p r o g r a m m i n g l a n g u a g e w h i c h p r o v i d e s p r o t e c t i o n f r o m a r a n g e o f a t t a c k s a g a i n s t w e b a p p l i c a t i o n s a n d a l l o w s f o r H T T P t r a f f i c m o n i t o r i n g , l o g g i n g a n d r e a l - t i m e a n a l y s …
w w w . m o d s e c u r i t y . o r g
A p a c h e - 2 . 0 L i c e n s e
4 k
s t a r s
1 . 1 k
f o r k s
S t a r
W a t c h
●
C o d e
●
I s s u e s
1 4 5
●
P u l l r e q u e s t s
24
●
A c t i o n s
●
P r o j e c t s
3
●
W i k i
●
S e c u r i t y
●
I n s i g h t s
M o r e
●
C o d e
●
I s s u e s
●
P u l l r e q u e s t s
●
A c t i o n s
●
P r o j e c t s
●
W i k i
●
S e c u r i t y
●
I n s i g h t s
D i s m i s s
J o i n G i t H u b t o d a y
G i t H u b i s h o m e t o o v e r 5 0 m i l l i o n d e v e l o p e r s w o r k i n g t o g e t h e r t o h o s t a n d r e v i e w c o d e , m a n a g e p r o j e c t s , a n d b u i l d s o f t w a r e t o g e t h e r .
S i g n u p
G i t H u b i s w h e r e t h e w o r l d b u i l d s s o f t w a r e
M i l l i o n s o f d e v e l o p e r s a n d c o m p a n i e s b u i l d , s h i p , a n d m a i n t a i n t h e i r s o f t w a r e o n G i t H u b — t h e l a r g e s t a n d m o s t a d v a n c e d d e v e l o p m e n t p l a t f o r m i n t h e w o r l d .
S i g n u p f o r f r e e
D i s m i s s
43
b r a n c h e s
90
t a g s
G o t o f i l e
C o d e
C l o n e
U s e G i t o r c h e c k o u t w i t h S V N u s i n g t h e w e b U R L .
W o r k f a s t w i t h o u r o f f i c i a l C L I .
L e a r n m o r e .
●
O p e n w i t h G i t H u b D e s k t o p
●
D o w n l o a d Z I P
L a u n c h i n g G i t H u b D e s k t o p
I f n o t h i n g h a p p e n s , d o w n l o a d G i t H u b D e s k t o p a n d t r y a g a i n .
G o b a c k
L a u n c h i n g G i t H u b D e s k t o p
I f n o t h i n g h a p p e n s , d o w n l o a d G i t H u b D e s k t o p a n d t r y a g a i n .
G o b a c k
L a u n c h i n g X c o d e
I f n o t h i n g h a p p e n s , d o w n l o a d X c o d e a n d t r y a g a i n .
G o b a c k
L a u n c h i n g V i s u a l S t u d i o
I f n o t h i n g h a p p e n s , d o w n l o a d t h e G i t H u b e x t e n s i o n f o r V i s u a l S t u d i o a n d t r y a g a i n .
G o b a c k
L a t e s t c o m m i t
g i t 0 0 1
a n d z i m m e r l e
F i x P a t h t o p r o j e k t l o g o
…
a f e f d a 5
N o v 1 6 , 2 0 2 0
F i x P a t h t o p r o j e k t l o g o
a f e f d a 5
G i t s t a t s
●
3 , 0 0 1
c o m m i t s
F i l e s
P e r m a l i n k
F a i l e d t o l o a d l a t e s t c o m m i t i n f o r m a t i o n .
T y p e
N a m e
L a t e s t c o m m i t m e s s a g e
C o m m i t t i m e
. g i t h u b / I S S U E _ T E M P L A T E
G i t H u b : A d d s i s s u e t e m p l a t e
D e c 5 , 2 0 1 8
b i n d i n g s
U p d a t e s p y t h o n b i n d i n g s v e r s i o n
J a n 1 8 , 2 0 1 6
b u i l d
F i x m a x m i n d d b l i n k o n F r e e B S D
O c t 2 3 , 2 0 2 0
d o c
F i x P a t h t o p r o j e k t l o g o
N o v 1 6 , 2 0 2 0
e x a m p l e s
R e f a c t o r i n g : R e n a m e s R u l e s P r o p e r t i e s t o R u l e s S e t P r o p e r t i e s
F e b 1 7 , 2 0 2 0
h e a d e r s / m o d s e c u r i t y
F i x : O n l y d e l e t e M u l t i p a r t t m p f i l e s a f t e r r u l e s h a v e r u n
N o v 4 , 2 0 2 0
o t h e r s
O v e r r i d e t h e d e f a u l t s t a t u s c o d e i f n o t s u i t a b l e t o r e d i r e c t a c t i o n
O c t 3 0 , 2 0 1 8
s r c
F i x : O n l y d e l e t e M u l t i p a r t t m p f i l e s a f t e r r u l e s h a v e r u n
N o v 4 , 2 0 2 0
t e s t
F i x : O n l y d e l e t e M u l t i p a r t t m p f i l e s a f t e r r u l e s h a v e r u n
N o v 4 , 2 0 2 0
t o o l s
R e f a c t o r i n g : R e n a m e s R u l e s t o R u l e s S e t
F e b 1 1 , 2 0 2 0
. g i t i g n o r e
g i t i g n o r e : A d d s b i n a r i e s f r o m e x a m p l e s t o t h e i g n o r e l i s t
A u g 2 0 , 2 0 1 7
. g i t m o d u l e s
A d d s P y t h o n b i n d i n g s t o t h e m a i n M o d S e c u r i t y g i t r e p o
D e c 2 2 , 2 0 1 5
. t r a v i s . y m l
T r a v i s : a b u s i n g - j
J a n 1 4 , 2 0 2 0
A U T H O R S
A d d s V i c t o r t o t h e A U T H O R S f i l e
N o v 2 , 2 0 1 8
C H A N G E S
F i x : O n l y d e l e t e M u l t i p a r t t m p f i l e s a f t e r r u l e s h a v e r u n
N o v 4 , 2 0 2 0
L I C E N S E
V e r y f i r s t c o m m i t : l i b m o d s e c u r i t y
J u n 2 6 , 2 0 1 5
M a k e f i l e . a m
F i x : O n l y d e l e t e M u l t i p a r t t m p f i l e s a f t e r r u l e s h a v e r u n
N o v 4 , 2 0 2 0
R E A D M E . m d
G i t H u b " c l a s s = " l i n k - g r a y " h r e f = " / w e b / 2 0 2 0 1 2 0 2 1 1 1 3 0 7 / h t t p s : / / g i t h u b . c o m / S p i d e r L a b s / M o d S e c u r i t y / c o m m i t / f 0 f 1 c 2 b 1 a 1 9 9 3 0 a 6 c 8 8 3 3 e b 7 e a a c 1 3 6 7 9 7 7 2 8 d 9 1 " > M e r g e p u l l r e q u e s t # 2 3 1 7 G i t H u b " c l a s s = " l i n k - g r a y " h r e f = " / w e b / 2 0 2 0 1 2 0 2 1 1 1 3 0 7 / h t t p s : / / g i t h u b . c o m / S p i d e r L a b s / M o d S e c u r i t y / c o m m i t / f 0 f 1 c 2 b 1 a 1 9 9 3 0 a 6 c 8 8 3 3 e b 7 e a a c 1 3 6 7 9 7 7 2 8 d 9 1 " > f r o m n i k o l a s / p a t c h - 3
M a y 2 1 , 2 0 2 0
b u i l d . s h
V e r y f i r s t c o m m i t : l i b m o d s e c u r i t y
J u n 2 6 , 2 0 1 5
c o n f i g u r e . a c
" c l a s s = " l i n k - g r a y " h r e f = " / w e b / 2 0 2 0 1 2 0 2 1 1 1 3 0 7 / h t t p s : / / g i t h u b . c o m / S p i d e r L a b s / M o d S e c u r i t y / c o m m i t / e 9 b c a f 4 4 1 d d f 5 f 3 6 0 d 5 8 1 c c 8 9 e f 5 4 4 3 e 7 f 8 1 1 c 1 e " > t e s t f o r u C l i n u x i n c o n f i g u r e s c r i p t
F e b 4 , 2 0 2 0
m o d s e c u r i t y . c o n f - r e c o m m e n d e d
F i x i n g T y p o
M a y 2 1 , 2 0 2 0
m o d s e c u r i t y . p c . i n
" c l a s s = " l i n k - g r a y " h r e f = " / w e b / 2 0 2 0 1 2 0 2 1 1 1 3 0 7 / h t t p s : / / g i t h u b . c o m / S p i d e r L a b s / M o d S e c u r i t y / c o m m i t / f 7 6 a 1 a 6 6 7 b 8 f d b c f e 0 d 9 4 3 d a c a 9 b 4 1 e b 5 9 c c 6 1 f 3 " > m o d s e c u r i t y . p c . i n : a d d L i b s . p r i v a t e
F e b 4 , 2 0 2 0
u n i c o d e . m a p p i n g
A d d u n i c o d e . m a p p i n g f i l e t o v 3 / m a s t e r b r a n c h
O c t 2 6 , 2 0 1 8
V i e w c o d e
R E A D M E . m d
L i b m o d s e c u r i t y i s o n e c o m p o n e n t o f t h e M o d S e c u r i t y v 3 p r o j e c t . T h e l i b r a r y
c o d e b a s e s e r v e s a s a n i n t e r f a c e t o M o d S e c u r i t y C o n n e c t o r s t a k i n g i n w e b t r a f f i c
a n d a p p l y i n g t r a d i t i o n a l M o d S e c u r i t y p r o c e s s i n g . I n g e n e r a l , i t p r o v i d e s t h e
c a p a b i l i t y t o l o a d / i n t e r p r e t r u l e s w r i t t e n i n t h e M o d S e c u r i t y S e c R u l e s f o r m a t
a n d a p p l y t h e m t o H T T P c o n t e n t p r o v i d e d b y y o u r a p p l i c a t i o n v i a C o n n e c t o r s .
I f y o u a r e l o o k i n g f o r M o d S e c u r i t y f o r A p a c h e ( a k a M o d S e c u r i t y v 2 . x ) , i t i s s t i l l u n d e r m a i n t e n e n c e a n d a v a i l a b l e :
h e r e .
W h a t i s t h e d i f f e r e n c e b e t w e e n t h i s p r o j e c t a n d t h e o l d M o d S e c u r i t y ( v 2 . x . x ) ?
● A l l A p a c h e d e p e n d e n c e s h a v e b e e n r e m o v e d
● H i g h e r p e r f o r m a n c e
● N e w f e a t u r e s
● N e w a r c h i t e c t u r e
L i b m o d s e c u r i t y i s a c o m p l e t e r e w r i t e o f t h e M o d S e c u r i t y p l a t f o r m . W h e n i t w a s f i r s t d e v i s e d t h e M o d S e c u r i t y p r o j e c t s t a r t e d a s j u s t a n A p a c h e m o d u l e . O v e r t i m e t h e p r o j e c t h a s b e e n e x t e n d e d , d u e t o p o p u l a r d e m a n d , t o s u p p o r t o t h e r p l a t f o r m s i n c l u d i n g ( b u t n o t l i m i t e d t o ) N g i n x a n d I I S . I n o r d e r t o p r o v i d e f o r t h e g r o w i n g d e m a n d f o r a d d i t i o n a l p l a t f o r m s u p p o r t , i t h a s b e c a m e n e c e s s a r y t o r e m o v e t h e A p a c h e d e p e n d e n c i e s u n d e r l y i n g t h i s p r o j e c t , m a k i n g i t m o r e p l a t f o r m i n d e p e n d e n t .
A s a r e s u l t o f t h i s g o a l w e h a v e r e a r c h i t e c t e d L i b m o d s e c u r i t y s u c h t h a t i t i s n o l o n g e r d e p e n d e n t o n t h e A p a c h e w e b s e r v e r ( b o t h a t c o m p i l a t i o n a n d d u r i n g r u n t i m e ) . O n e s i d e e f f e c t o f t h i s i s t h a t a c r o s s a l l p l a t f o r m s u s e r s c a n e x p e c t i n c r e a s e d p e r f o r m a n c e . A d d i t i o n a l l y , w e h a v e t a k e n t h i s o p p r o t u n i t y t o l a y t h e g r o u n d w o r k f o r s o m e n e w f e a t u r e s t h a t u s e r s h a v e b e e n l o n g s e e k i n g . F o r e x a m p l e w e a r e l o o k i n g t o n a t i v l y s u p p o r t a u d i t l o g s i n t h e J S O N f o r m a t , a l o n g w i t h a h o s t o f o t h e r f u n c t i o n a l i t y i n f u t u r e v e r s i o n s .
I t i s n o l o n g e r j u s t a m o d u l e .
T h e ' M o d S e c u r i t y ' b r a n c h n o l o n g e r c o n t a i n s t h e t r a d i t i o n a l m o d u l e l o g i c ( f o r N g i n x , A p a c h e , a n d I I S ) t h a t h a s t r a d i t i o n a l l y b e e n p a c k a g e d a l l t o g e t h e r . I n s t e a d , t h i s b r a n c h o n l y c o n t a i n s t h e l i b r a r y p o r t i o n ( l i b m o d s e c u r i t y ) f o r t h i s p r o j e c t . T h i s l i b r a r y i s c o n s u m e d b y w h a t w e h a v e t e r m e d ' C o n n e c t o r s ' t h e s e c o n n e c t o r s w i l l i n t e r f a c e w i t h y o u r w e b s e r v e r a n d p r o v i d e t h e l i b r a r y w i t h a c o m m o n f o r m a t t h a t i t u n d e r s a n d s . E a c h o f t h e s e c o n n e c t o r s i s m a i n t a i n e d a s a s e p e r a t e G i t H u b p r o j e c t . F o r i n s t a n c e , t h e N g i n x c o n n e c t o r i s s u p p l i e d b y t h e M o d S e c u r i t y - n g i n x p r o j e c t ( h t t p s : / / g i t h u b . c o m / S p i d e r L a b s / M o d S e c u r i t y - n g i n x ) .
K e e p i n g t h e s e c o n n e c t o r s s e p e r a t e d a l l o w s e a c h p r o j e c t t o b e h a v e d i f f e r e n t r e l e a s e c y c l e s , i s s u e s a n d d e v e l o p m e n t t r e e s . A d d t i o n a l l y , i t m e a n s t h a t w h e n y o u i n s t a l l M o d S e c u r i t y v 3 y o u o n l y g e t e x a c t l y w h a t y o u n e e d , n o e x t r a s y o u w o n ' t b e u s i n g .
C o m p i l a t i o n
B e f o r e s t a r t i n g t h e c o m p i l a t i o n p r o c e s s , m a k e s u r e t h a t y o u h a v e a l l t h e
d e p e n d e n c i e s i n p l a c e . R e a d t h e s u b s e c t i o n “ D e p e n d e n c i e s ” f o r f u r t h e r
i n f o r m a t i o n .
A f t e r t h e c o m p i l a t i o n m a k e s u r e t h a t t h e r e a r e n o i s s u e s o n y o u r
b u i l d / p l a t f o r m . W e s t r o n g l y r e c o m m e n d t h e u t i l i z a t i o n o f t h e u n i t t e s t s a n d
r e g r e s s i o n t e s t s . T h e s e t e s t u t i l i t i e s a r e l o c a t e d u n d e r t h e s u b f o l d e r ‘ t e s t s ’ .
A s a d y n a m i c l i b r a r y , d o n ’ t f o r g e t t h a t l i b m o d s e c u r i t y m u s t b e i n s t a l l e d t o a l o c a t i o n ( f o l d e r ) w h e r e y o u O S w i l l b e l o o k i n g f o r d y n a m i c l i b r a r i e s .
U n i x ( L i n u x , M a c O S , F r e e B S D , … )
O n u n i x t h e p r o j e c t u s e s a u t o t o o l s t o h e l p t h e c o m p i l a t i o n p r o c e s s .
$ ./build.sh
$ ./configure
$ make
$ sudo make install
D e t a i l s o n d i s t r i b u t i o n s p e c i f i c b u i l d s c a n b e f o u n d i n o u r W i k i :
C o m p i l a t i o n R e c i p e s
W i n d o w s
W i n d o w s b u i l d i s n o t r e a d y y e t .
D e p e n d e n c i e s
T h i s l i b r a r y i s w r i t t e n i n C + + u s i n g t h e C + + 1 1 s t a n d a r d s . I t a l s o u s e s F l e x
a n d Y a c c t o p r o d u c e t h e “ S e c R u l e s L a n g u a g e ” p a r s e r . O t h e r , m a n d i t o r y d e p e n d e n c i e s i n c l u d e Y A J L , a s M o d S e c u r i t y u s e s J S O N f o r p r o d u c i n g l o g s a n d i t s t e s t i n g f r a m e w o r k , l i b p c r e ( n o t y e t m a n d i t o r y ) f o r p r o c e s s i n g r e g u l a r e x p r e s s i o n s i n S e c R u l e s , a n d l i b X M L 2 ( n o t y e t m a n d i t o r y ) w h i c h i s u s e d f o r p a r s i n g X M L r e q u e s t s .
A l l o t h e r s d e p e n d e n c i e s a r e r e l a t e d t o o p e r a t o r s s p e c i f i e d w i t h i n S e c R u l e s o r c o n f i g u r a t i o n d i r e c t i v e s a n d m a y n o t b e r e q u i r e d f o r c o m p i l a t i o n . A s h o r t l i s t o f s u c h d e p e n d e n c i e s i s a s f o l l o w s :
● l i b i n j e c t i o n i s n e e d e d f o r t h e o p e r a t o r @ d e t e c t X S S a n d @ d e t e c t S Q L
● c u r l i s n e e d e d f o r t h e d i r e c t i v e S e c R e m o t e R u l e s .
I f t h o s e l i b r a r i e s a r e m i s s i n g M o d S e c u r i t y w i l l b e c o m p i l e d w i t h o u t t h e s u p p o r t f o r t h e o p e r a t o r @ d e t e c t X S S a n d t h e c o n f i g u r a t i o n d i r e c t i v e S e c R e m o t e R u l e s .
L i b r a r y d o c u m e n t a t i o n
T h e l i b r a r y d o c u m e n t a t i o n i s w r i t t e n w i t h i n t h e c o d e i n D o x y g e n f o r m a t . T o g e n e r a t e t h i s d o c u m e n t a t i o n , p l e a s e u s e t h e d o x y g e n u t i l i t y w i t h t h e p r o v i d e d c o n f i g u r a t i o n f i l e , “ d o x y g e n . c f g ” , l o c a t e d w i t h t h e " d o c / " s u b f o l d e r . T h i s w i l l g e n e r a t e H T M L f o r m a t t e d d o c u m e n t a t i o n i n c l u d i n g u s a g e e x a m p l e s .
L i b r a r y u t i l i z a t i o n
T h e l i b r a r y p r o v i d e s a C + + a n d C i n t e r f a c e . S o m e r e s o u r c e s a r e c u r r e n t l y o n l y
a v a i l a b l e v i a t h e C + + i n t e r f a c e , f o r i n s t a n c e , t h e c a p a b i l i t y t o c r e a t e c u s t o m l o g g i n g
m e c h a n i s m ( s e e t h e r e g r e s s i o n t e s t t o c h e c k f o r h o w t h o s e l o g g i n g m e c h a n i s m w o r k s ) .
T h e o b j e c t i v e i s t o h a v e b o t h A P I s ( C , C + + ) p r o v i d i n g t h e s a m e f u n c t i o n a l i t y ,
i f y o u f i n d a n a s p e c t o f t h e A P I t h a t i s m i s s i n g v i a a p e r t i c u l a r i n t e r f a c e , p l e a s e o p e n a n i s s u e .
I n s i d e t h e s u b f o l d e r e x a m p l e s , t h e r e a r e s i m p l e e x a m p l e s o n h o w t o u s e t h e A P I .
B e l o w s o m e a r e i l l u s t r a t e d :
S i m p l e e x a m p l e u s i n g C + +
using ModSecurity::ModSecurity;
using ModSecurity::Rules;
using ModSecurity::Transaction;
ModSecurity *modsec;
ModSecurity::Rules *rules;
modsec = new ModSecurity();
rules = new Rules();
rules->loadFromUri (rules_file);
Transaction *modsecTransaction = new Transaction(modsec, rules);
modsecTransaction->processConnection (" 127.0.0.1" );
if (modsecTransaction->intervention ()) {
std::cout << " There is an intervention" << std::endl;
}
S i m p l e e x a m p l e u s i n g C
#include " modsecurity/modsecurity.h"
#include " modsecurity/transaction.h"
char main_rule_uri[] = " basic_rules.conf" ;
int main (int argc, char **argv)
{
ModSecurity *modsec = NULL ;
Transaction *transaction = NULL ;
Rules *rules = NULL ;
modsec = msc_init ();
rules = msc_create_rules_set ();
msc_rules_add_file (rules, main_rule_uri);
transaction = msc_new_transaction (modsec, rules);
msc_process_connection (transaction, " 127.0.0.1" );
msc_process_uri (transaction, " http://www.modsecurity.org/test?key1=value1&key2=value2&key3=value3&test=args&test=test" );
msc_process_request_headers (transaction);
msc_process_request_body (transaction);
msc_process_response_headers (transaction);
msc_process_response_body (transaction);
return 0 ;
}
C o n t r i b u t i n g
Y o u a r e m o r e t h a n w e l c o m e t o c o n t r i b u t e t o t h i s p r o j e c t a n d l o o k f o r w a r d t o g r o w i n g t h e c o m m u n i t y a r o u n d t h i s n e w v e r s i o n o f M o d S e c u r i t y . A r e a s o f i n t e r e s t i n c l u d e : N e w
f u n c t i o n a l i t i e s , f i x e s , b u g r e p o r t , s u p p o r t f o r b e g i n n i n g u s e r s , o r a n y t h i n g t h a t y o u
a r e w i l l i n g t o h e l p w i t h .
P r o v i d i n g p a t c h e s
W e p r e f e r t o h a v e y o u r p a t c h w i t h i n t h e G i t H u b i n f r a s t r u c t u r e t o f a c i l i t a t e o u r
r e v i e w w o r k , a n d o u r Q . A . i n t e g r a t i o n . G i t H u b p r o v i d e s e x c e l l e n t
d o c u m e n t a t i o n o n h o w t o p e r f o r m “ P u l l R e q u e s t s ” , m o r e i n f o r m a t i o n a v a i l a b l e
h e r e : h t t p s : / / h e l p . g i t h u b . c o m / a r t i c l e s / u s i n g - p u l l - r e q u e s t s /
P l e a s e r e s p e c t t h e c o d i n g s t y l e . P u l l r e q u e s t s c a n i n c l u d e v a r i o u s c o m m i t s , s o
p r o v i d e o n e f i x o r o n e p i e c e o f f u n c t i o n a l i t y p e r c o m m i t . P l e a s e d o n o t c h a n g e a n y t h i n g o u t s i d e
t h e s c o p e o f y o u r t a r g e t w o r k ( e . g . c o d i n g s t y l e i n a f u n c t i o n t h a t y o u h a v e
p a s s e d b y ) . F o r f u r t h e r i n f o r m a t i o n a b o u t t h e c o d i n g s t y l e u s e d i n t h i s
p r o j e c t , p l e a s e c h e c k : h t t p s : / / w w w . c h r o m i u m . o r g / b l i n k / c o d i n g - s t y l e
P r o v i d e s e x p l a n a t i v e c o m m i t m e s s a g e s . Y o u r f i r s t l i n e s h o u l d g i v e t h e h i g h l i g h t s o f y o u r
p a t c h , 3 r d a n d o n g i v e a m o r e d e t a i l e d e x p l a n a t i o n / t e c h n i c a l d e t a i l s a b o u t y o u r
p a t c h . P a t c h e x p l a n a t i o n i s v a l u a b l e d u r i n g t h e r e v i e w p r o c e s s .
D o n ’ t k n o w w h e r e t o s t a r t ?
W i t h i n o u r c o d e t h e r e a r e v a r i o u s i t e m s m a r k e d a s T O D O o r F I X M E t h a t m a y n e e d
y o u r a t t e n t i o n . C h e c k t h e l i s t o f i t e m s b y p e r f o r m i n g a g r e p :
$ cd /path/to/modsecurity-nginx
$ egrep -Rin "TODO|FIXME" -R *
A T O D O l i s t i s a l s o a v a i l a b l e a s p a r t o f t h e D o x y g e n d o c u m e n t a t i o n .
T e s t i n g y o u r p a t c h
A l o n g w i t h t h e m a n u a l t e s t i n g , w e s t r o n g l y r e c o m m e n d y o u t o u s e t h e o u r
r e g r e s s i o n t e s t s a n d u n i t t e s t s . I f y o u h a v e i m p l e m e n t e d a n o p e r a t o r , d o n ’ t
f o r g e t t o c r e a t e u n i t t e s t s f o r i t . I f y o u i m p l i m e n t a n y t h i n g e l s e , i t i s e n c o u r a g e d t h a t y o u d e v e l o p c o m p l i m e n t a r y r e g r e s s i o n t e s t s f o r i t .
T h e r e g r e s s i o n t e s t a n d u n i t t e s t u t i l i t i e s a r e n a t i v e a n d d o n o t d e m a n d a n y
e x t e r n a l t o o l o r s c r i p t , a l t h o u g h y o u n e e d t o f e t c h t h e t e s t c a s e s f r o m o t h e r
r e p o s i t o r i e s , a s t h e y a r e s h a r e d w i t h o t h e r v e r s i o n s o f M o d S e c u r i t y , t h o s e
o t h e r s r e p o s i t o r i e s g i t s u b m o d u l e s . T o f e t c h t h e s u b m o d u l e s r e p o s i t o r y a n d r u n
t h e u t i l i t i e s , f o l l o w t h e c o m m a n d s l i s t e d b e l o w :
$ cd /path/to/your/ModSecurity
$ git submodule foreach git pull
$ cd test
$ ./regression-tests
$ ./unit-tests
D e b u g g i n g
B e f o r e s t a r t t h e d e b u g g i n g p r o c e s s , m a k e s u r e o f w h e r e y o u r b u g i s . T h e p r o b l e m
c o u l d b e o n y o u r c o n n e c t o r o r i n l i b m o d s e c u r i t y . I n o r d e r t o i d e n t i f y w h e r e t h e
b u g i s , i t i s r e c o m m e n d e d t h a t y o u d e v e l o p a r e g r e s s i o n t e s t t h a t m i m i c s t h e
s c e n a r i o w h e r e t h e b u g i s h a p p e n i n g . I f t h e b u g i s r e p r o d u c i b l e w i t h t h e
r e g r e s s i o n - t e s t u t i l i t y , t h e n i t w i l l b e f a r s i m p l i a r t o d e b u g a n d e n s u r e t h a t i t n e v e r o c c u r s a g a i n . O n L i n u x i t i s
r e c o m m e n d e d t h a t a n y o n e u n d e r t a k i n g d e b u g g i n g u t i l i z e g d b a n d / o r v a l g r i n d a s n e e d e d .
D u r i n g t h e c o n f i g u r a t i o n / c o m p i l a t i o n t i m e , y o u m a y w a n t t o d i s a b l e t h e c o m p i l e r
o p t i m i z a t i o n m a k i n g y o u r “ b a c k t r a c e s ” p o p u l a t e d w i t h r e a d a b l e d a t a . U s e t h e
C F L A G S t o d i s a b l e t h e c o m p i l a t i o n o p t i m i z a t i o n p a r a m e t e r s :
$ export CFLAGS=" -g -O0"
$ ./build.sh
$ ./configure
$ make
$ sudo make install
R e p o r t i n g I s s u e s
I f y o u a r e f a c i n g a c o n f i g u r a t i o n i s s u e o r s o m e t h i n g i s n o t w o r k i n g a s y o u
e x p e c t e d t o b e , p l e a s e u s e t h e M o d S e c u r i t y u s e r ’ s m a i l i n g l i s t . I s s u e s o n G i t H u b
a r e a l s o w e l c o m e d , b u t w e p r e f e r t o h a v e u s e r a s k q u e s t i o n s o n t h e m a i l i n g l i s t f i r s t s o t h a t y o u c a n r e a c h a n e n t i r e c o m m u n i t y . A l s o d o n ’ t f o r g e t t o l o o k f o r e x i s t i n g i s s u e s b e f o r e o p e n a n e w o n e .
I f y o u a r e g o i n g t o o p e n a n e w i s s u e o n G i t H u b , d o n ’ t f o r g e t t o t e l l u s t h e
v e r s i o n o f y o u r l i b m o d s e c u r i t y a n d t h e v e r s i o n o f a s p e c i f i c c o n n e c t o r i f t h e r e
i s o n e .
S e c u r i t y i s s u e
P l e a s e d o n o t m a k e p u b l i c a n y s e c u r i t y i s s u e . C o n t a c t u s a t :
s e c u r i t y @ m o d s e c u r i t y . o r g r e p o r t i n g t h e i s s u e . O n c e t h e p r o b l e m i s f i x e d y o u r
c r e d i t w i l l b e g i v e n .
F e a t u r e r e q u e s t
W e a r e o p e n t o d i s c u s s i n g a n y n e w f e a t u r e r e q u e s t w i t h t h e c o m m u n i t y v i a t h e m a i l i n g l i s t s . Y o u c a n a l t e r n a t i v l y ,
f e e l f r e e t o o p e n G i t H u b i s s u e s r e q u e s t i n g n e w f e a t u r e s . B e f o r e o p e n i n g a
n e w i s s u e , p l e a s e c h e c k i f t h e r e i s o n e a l r e a d y o p e n e d o n t h e s a m e t o p i c .
B i n d i n g s
T h e l i b M o d S e c u r i t y d e s i g n a l l o w s t h e i n t e g r a t i o n w i t h b i n d i n g s . T h e r e i s a n e f f o r t t o a v o i d b r a k e t h e A P I [ b i n a r y ] c o m p a t i b i l i t y t o m a k e a n e a s y i n t e g r a t i o n w i t h p o s s i b l e b i n d i n g s . C u r r e n t l y , t h e r e a r e t w o n o t a b l e p r o j e c t s m a i n t a i n e d b y t h e c o m m u n i t y :
● P y t h o n - h t t p s : / / g i t h u b . c o m / a c t i o n s - s e c u r i t y / p y m o d s e c u r i t y
● V a r n i s h - h t t p s : / / g i t h u b . c o m / x d e c o c k / v m o d - m o d s e c u r i t y
P a c k a g i n g
H a v i n g o u r p a c k a g e s i n d i s t r o s o n t i m e i s a d e s i r e t h a t w e h a v e , s o l e t u s k n o w
i f t h e r e i s a n y t h i n g w e c a n d o t o f a c i l i t a t e y o u r w o r k a s a p a c k a g e r .
A b o u t
M o d S e c u r i t y i s a n o p e n s o u r c e , c r o s s p l a t f o r m w e b a p p l i c a t i o n f i r e w a l l ( W A F ) e n g i n e f o r A p a c h e , I I S a n d N g i n x t h a t i s d e v e l o p e d b y T r u s t w a v e ' s S p i d e r L a b s . I t h a s a r o b u s t e v e n t - b a s e d p r o g r a m m i n g l a n g u a g e w h i c h p r o v i d e s p r o t e c t i o n f r o m a r a n g e o f a t t a c k s a g a i n s t w e b a p p l i c a t i o n s a n d a l l o w s f o r H T T P t r a f f i c m o n i t o r i n g , l o g g i n g a n d r e a l - t i m e a n a l y s …
w w w . m o d s e c u r i t y . o r g
T o p i c s
m o d s e c u r i t y
n g i n x
a p a c h e
a p a c h e 2
w a f
R e s o u r c e s
R e a d m e
L i c e n s e
A p a c h e - 2 . 0 L i c e n s e
v 3 . 0 . 4
L a t e s t
J a n 1 3 , 2 0 2 0
+ 8 9 r e l e a s e s
N o p a c k a g e s p u b l i s h e d
+ 4 7 c o n t r i b u t o r s
L a n g u a g e s
●
C + +
9 0 . 3 %
●
C
4 . 6 %
●
M 4
3 . 5 %
●
M a k e f i l e
1 . 2 %
●
O t h e r
0 . 4 %
● © 2 0 2 0 G i t H u b , I n c .
● T e r m s
● P r i v a c y
●
C o o k i e P r e f e r e n c e s
● S e c u r i t y
● S t a t u s
● H e l p
● C o n t a c t G i t H u b
● P r i c i n g
● A P I
● T r a i n i n g
● B l o g
● A b o u t
Y o u c a n ’ t p e r f o r m t h a t a c t i o n a t t h i s t i m e .
Y o u s i g n e d i n w i t h a n o t h e r t a b o r w i n d o w . R e l o a d t o r e f r e s h y o u r s e s s i o n .
Y o u s i g n e d o u t i n a n o t h e r t a b o r w i n d o w . R e l o a d t o r e f r e s h y o u r s e s s i o n .
W e u s e o p t i o n a l t h i r d - p a r t y a n a l y t i c s c o o k i e s t o u n d e r s t a n d h o w y o u u s e G i t H u b . c o m s o w e c a n b u i l d b e t t e r p r o d u c t s .
L e a r n m o r e .
A c c e p t
R e j e c t
W e u s e o p t i o n a l t h i r d - p a r t y a n a l y t i c s c o o k i e s t o u n d e r s t a n d h o w y o u u s e G i t H u b . c o m s o w e c a n b u i l d b e t t e r p r o d u c t s .
Y o u c a n a l w a y s u p d a t e y o u r s e l e c t i o n b y c l i c k i n g C o o k i e P r e f e r e n c e s a t t h e b o t t o m o f t h e p a g e .
F o r m o r e i n f o r m a t i o n , s e e o u r P r i v a c y S t a t e m e n t .
E s s e n t i a l c o o k i e s
W e u s e e s s e n t i a l c o o k i e s t o p e r f o r m e s s e n t i a l w e b s i t e f u n c t i o n s , e . g . t h e y ' r e u s e d t o l o g y o u i n .
L e a r n m o r e
A l w a y s a c t i v e
A n a l y t i c s c o o k i e s
W e u s e a n a l y t i c s c o o k i e s t o u n d e r s t a n d h o w y o u u s e o u r w e b s i t e s s o w e c a n m a k e t h e m b e t t e r , e . g . t h e y ' r e u s e d t o g a t h e r i n f o r m a t i o n a b o u t t h e p a g e s y o u v i s i t a n d h o w m a n y c l i c k s y o u n e e d t o a c c o m p l i s h a t a s k .
L e a r n m o r e
A c c e p t
R e j e c t
S a v e p r e f e r e n c e s