Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Phương thức phòng chống tấn công sử dụng Mod security
Nội dung xem thử
Mô tả chi tiết
MOD SECURITY
PHẦN 1: CƠ BẢN VỀ GIAO THỨC HTTP
Phần này chỉ giới thiệu sơ lược các kiến thức cơ bản về giao thức HTTP, tạo tiền đề để
phần 2 trình bày về MODSECURITY. Vì vậy, nếu bạn nào cần tìm hiểu sâu hơn, hãy
tham khảo RFC hoặc cuốn HTTP Essentials
11. Giới thiệu chung
1.1.1. Lớp của giao thức HTTP
HTTP (Hypertext Transfer Protocol) là giao thức thuộc lớp ứng dụng trong mô hình tham
chiếu OSI. Hoạt động thông thường ở port 80 và là giao thức hướng kết nối. Nói cách
khác, trước khi thực hiện phiên làm việc, giao thức HTTP sẽ thực hiện bắt tay ba bước.
Hình 1.1 Lớp của giao thức HTTP
1.1.2. URI – Uniform Resource Identifiers
Thông thường, chúng ta thường quen thuộc với định nghĩa URL (Uniform Resource
Locators) Địa chỉ http://www.example.com.vn là một ví dụ về URL. Trên thực tế, không
có nhiều khác biệt giữa hai khái niệm URL và URI, URL một chỉ là một loại của URI.
URI là một đặc điểm kỹ thuật của giao thức HTTP. Như hình dưới cho thấy một URI
chứa rất nhiều các thành phần, không đơn giản như URL.
Hình 1.2 Cấu trúc đầy đủ của URI
- Protocol: Xác định các giao thức và các ứng dụng cần thiết để truy cập tài nguyên,
trong trường hợp này là giao thức HTTP
- Username: Nếu giao thức hỗ trợ khái niệm về tên người dùng thì username cung cấp
tên người dùng để chứng thực truy cập tài nguyên
- Password: Mật khẩu truy cập tài nguyên
- Host: Tên miền truyền thông cho webserver,
- Port: Là port cho các giao thức lớp ứng dụng, ví dụ như HTTP là cổng 80 (có thể bỏ
qua tham số này).
- Path: đường dẫn phân cấp đến tài nguyên được đặt trên Server
- File: Tên các tập tin tài nguyên trên Server
- Query: Các tuy vấn thêm thông tin về tài nguyên của Client
- Fragment: Một vị trí nào đó trong tài nguyên
1.2. Hoạt động HTTP
1.2.1. Kết nối
HTTP thuộc giao thức TCP, vì vậy trước khi tiến hành truyền thông phải thực hiện phiên
kết nối TCP.
Trước đây, mỗi kết nối TCP sẽ thực hiện chỉ 1 request HTTP và 1 response, nghĩa là nếu
client request 2 lần thì sẽ cần 2 phiên kết nối TCP. Điều này gây ra nhiều bất cập, ảnh
hưởng rất nhiều đến hiệu năng hoạt động của server.
Hình 1.3 Hoạt động của HTTP
Hiện nay, giao thức HTTP đã hỗ trợ một phiên kết nối TCP cho phép nhiều HTTP
request..
Hình 1.4 Hoạt động kết nối của HTTP
1.2.2. Pipelining
Pipelining cũng nhằm mục đích cải thiện hiệu năng của HTTP. Client không cần phải chờ
Server response mới có thể request và ngược lại.
Hình 1.5 Hoạt động Pipelining của HTTP
1.2.3. Web Page Retrieval – GET
Hoạt động HTTP đơn giản nhất là GET. Đó là cách để Client lấy một đối tượng hoặc tài
nguyên nào đó trên Server. Các trình duyệt sẽ yêu cầu một website từ Server với GET.
Hình 1.6 Hoạt động GET của HTTP
Với ví dụ trên, Client khởi tạo và gởi thông điệp GET đến Server, thông điệp này định
danh đối tượng mà Client yêu cầu Server đáp ứng bằng một URI (Uniform Resource
Identifier). Server có thể trả về tài nguyên mà Client yêu cầu với một mã trạng thái 200
OK. Nếu Server không đáp ứng được yêu cầu Client thì nó sẽ gởi về một số mã trạng thái
khác được mô tả ở bảng bên dưới.
Bảng 1.1 Mã trạng thái được trả về của HTTP
1.2.4. Web Forms – POST
Trong khi GET cho phép một Server gửi thông tin đến Client, thì hoạt động POST cung
cấp một cách để Client gửi thông tin đến các Server. Trình duyệt sử dụng POST để gởi
nội dung các Form đến Web Server. Hình dưới cho thấy một ví dụ như vậy.
Hình 1.7 Ví dụ về Web Forms POST
Hình 1.8 Hoạt động POST của HTTP
Như hình trên cho thấy, hoạt động POST đơn giản như GET. Client gửi một thông điệp
POST và bao gồm thông tin mà nó muốn gửi đến server. Cũng giống như GET, một phần
của thông điệp POST là URI. Nhưng trong trường hợp này, URI xác định các đối tượng
trên Server có thể xử lý thông tin.
Cũng như GET, Server có thể trả về thông tin cho client. Đối với trình duyệt web, thông