[Discussion] If-then-else in modsecurity? :D |
21/12/2010 10:05:53 (+0700) | #1 | 227521 |
zjm_zjm
Member
|
0 |
|
|
Joined: 26/07/2009 01:53:09
Messages: 159
Location: hhhhhh
Offline
|
|
Mình đang đọc modsecurity handbook, tới phần này nhưng không hiểu cho lắm, anh em giải thích hộ tí.
Nguyên văn trong sách.
Code:
If-then-else
You can implement a primitive if-then-else construct if you use skip and SecAction together:
SecRule ARGS K1 id:1,nolog,pass,skip:2
SecRule ARGS K2 id:2,block
SecAction nolog,pass,skip:1
SecRule ARGS K3 id:3,block
The first rule in the example determines which of the two paths will be processed. If it matches,
the skip action is executed to skip to rule 3. However, if it doesn’t match the next rule
(2) will be processed. The unconditional match in SecAction, which follows rule 1, ensures
that rule 2 is not processed if there is no match in rule 1.
Skipping using labels doesn’t make the rules easier to read, although it makes large rule
groups easier to maintain:
SecRule ARGS K1 id:1,nolog,pass,skipAfter:11
SecRule ARGS K2 id:2,block
SecAction nolog,pass,skipAfter:12
SecLabel 11
SecRule ARGS K3 id:3,block
SecLabel 12
thanks
|
|
|
|
|
[Discussion] If-then-else in modsecurity? :D |
21/12/2010 10:33:43 (+0700) | #2 | 227524 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
Bạn nói thử cách hiểu của bạn xem. |
|
Let's build on a great foundation! |
|
|
|
[Discussion] If-then-else in modsecurity? :D |
21/12/2010 10:49:26 (+0700) | #3 | 227525 |
zjm_zjm
Member
|
0 |
|
|
Joined: 26/07/2009 01:53:09
Messages: 159
Location: hhhhhh
Offline
|
|
Ở phần này theo em hiểu thì...
Code:
SecRule ARGS K1 id:1,nolog,pass,skip:2
SecRule ARGS K2 id:2,block
SecAction nolog,pass,skip:1
SecRule ARGS K3 id:3,block
Tại dòng 1 nếu match K1 thì nó sẽ bỏ dòng 2 và thực hiện tiếp dòng 3
Tại dòng 3 này nó chỉ xác định lại dòng 1
và dòng cuối thì nó thực hiện
Không biết đúng không nữa
|
|
|
|
|
[Discussion] If-then-else in modsecurity? :D |
21/12/2010 11:01:46 (+0700) | #4 | 227527 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
Chưa đúng rồi. Bạn đọc lại xem action skip sẽ làm gì nhé. |
|
Let's build on a great foundation! |
|
|
|
[Discussion] If-then-else in modsecurity? :D |
21/12/2010 19:28:27 (+0700) | #5 | 227569 |
zjm_zjm
Member
|
0 |
|
|
Joined: 26/07/2009 01:53:09
Messages: 159
Location: hhhhhh
Offline
|
|
Do vốn tiếng Anh có hạn nên đã xem qua rất nhiều lần mà không hiểu lắm, mong anh quanta giải thích cái đoạn trên dùm, thanks |
|
|
|
|
[Discussion] If-then-else in modsecurity? :D |
21/12/2010 23:26:02 (+0700) | #6 | 227586 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
OK. Nếu bạn đọc phần trên của đoạn này "Changing rule flow" có thể bạn sẽ hiểu rõ hơn đấy.
skip action bỏ qua một hoặc nhiều rules tiếp theo nếu matches. Như vậy:
Code:
SecRule ARGS K1 id:1,nolog,pass,skip:2
SecRule ARGS K2 id:2,block
SecAction nolog,pass,skip:1
SecRule ARGS K3 id:3,block
có nghĩa là:
Dòng 1: đánh số rule này là 1, nếu matches (request kiểu như http://yourdomain.com/?r=xxK1yy) thì không log, cho phép đi qua, và bỏ qua 2 rules (hoặc chains) tiếp theo, thực hiện rule số 3. Nếu không matches thì thực hiện rule số 2.
Dòng 3: nếu đã chạy đến dòng này rồi thì sẽ luôn luôn bỏ qua rule số 3 (unconditional match). Có lẽ ở đây tác giả có chút nhầm lẫn khi giải thích thế này:
The unconditional match in SecAction, which follows rule 1, ensures that rule 2 is not processed if there is no match in rule 1.
Cách hiểu tốt nhất là thực hành. Do vậy, mình đề nghị bạn sửa mấy cái nolog thành log (có thể thêm msg: vào nữa), rồi thử lần lượt một số request như:
Code:
http://localhost/?x=K1&y=K3
http://localhost/?x=K0&y=K2
http://localhost/?x=K0&y=K2&z=K3
http://localhost/?x=K0&y=K4&z=K3
và soi error_log thì sẽ rõ hơn đấy. |
|
Let's build on a great foundation! |
|
|
|
|
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|