- SESSION USER
2.4.1.6. Tạo rule kết chuỗi – chain
Để kết hợp nhiều rule hoạt động liên tiếp với nhau, ta sử dụng chain.
Ví dụ: Người quản trị web server muốn chặn một số người download nhiều file gây ảnh hưởng đến web server, nhưng một số khách hàng khác cũng download mà không gây ảnh hưởng đến webserver bởi họ chỉ download vài file là xong và ta không chặn những người này. Và người quản trị server quyết định chặn những người có user- agent có chứa “Red Bullet” và IP của người này nằm trong dãy IP của một ISP xác định. Với từ chain trong action. Sử dụng nó, chúng ta có thể tạo ra một chain rule mà nếu phù hợp tất cả các rule trong chain thì action của chain sẽ được thực hiện.
Ví dụ đây là rule cấm người dùng với user-agent có từ “Red Bullet”
Code:
SecRule REQUEST_HEADERS:User-agent “Red Bullet” deny
Code:
SecRule REMOTE_ADDR “^192\.168\.1\.”
Để thoả mãn điều kiện đặt ra như trên, ta sử dụng rule chain để kết hợp hai rule trên:
Code:
SecRule REQUEST_HEADERS:User-agent “Red Bullet” “chain,deny” SecRule REMOTE_ADDR “^192\.168\.1\.”
Có thể thêm nhiều rule vào chain rule. Nếu chúng ta muốn thêm điều kiện là các rule chỉ hoạt động trước 6:00 giờ tối, ta sẽ thêm một rule thứ ba
Code:
SecRule REQUEST_HEADERS:User-agent “Red Bullet” “chain,deny” SecRule REMOTE_ADDR “^192\.168\.1\.” “chain”
SecRule TIME_HOUR “@lt 18”
Từ @lt viết tắt của “less-than” là nhỏ hơn. Thuộc cú pháp so sánh số (matching number), sẽ được trình bày chi tiết ở phần 2.4.3.
2.4.1.7. Rule IDs
Chúng ta có thể quản lý các rule bằng cách đặt ID cho mỗi rule.
Code:
Một số cú pháp thông thường
- SecRuleRemoveById:Gỡ bỏ rule có ID là
- SecRuleUpdateActionById: Cập nhật rule có ID là