Một Web Application Firewall (WAF) đơn giản chặn các truy vấn HTTP nếu nội dung của chúng chứa bất kỳ mẫu (pattern) nào nằm trong danh sách đen (blacklist), so khớp dưới dạng chuỗi con (substring), không phân biệt hoa/thường.
Cho danh sách n mẫu cấm và m truy vấn cần kiểm tra, với mỗi truy vấn hãy in ra:
BLOCK nếu truy vấn chứa ít nhất một mẫu cấm (không phân biệt hoa/thường) ở bất kỳ vị trí nào trong chuỗi.ALLOW nếu truy vấn không chứa mẫu cấm nào.Ví dụ: Với danh sách cấm gồm select, union, -- và truy vấn 1 UNION SELECT password, kết quả là BLOCK (chứa cả union và select, không phân biệt hoa/thường).
Dòng đầu tiên chứa số nguyên n (0≤n≤100) — số mẫu cấm. n dòng tiếp theo, mỗi dòng một mẫu cấm (có thể chứa khoảng trắng). Dòng tiếp theo chứa số nguyên m (1≤m≤100) — số truy vấn. m dòng tiếp theo, mỗi dòng một truy vấn cần kiểm tra.
In ra m dòng, mỗi dòng là BLOCK hoặc ALLOW tương ứng với từng truy vấn theo đúng thứ tự đầu vào.
Ví dụ:
Đầu vào:
3
select
union
--
4
hello world
SELECT * FROM users
1 UNION SELECT password
safe query
Đầu ra:
ALLOW
BLOCK
BLOCK
ALLOW
Đầu vào:
0
2
anything goes
really anything
Đầu ra:
ALLOW
ALLOW
Đang tải editor...