Chuẩn hóa dữ liệ u 60 

Một phần của tài liệu SQL injection - tấn công và cách phòng tránh (Trang 60 - 61)

Chúng ta đã đề cập đến một số các thao tác qua mặt các bộ lọc, phương thức phổ biến đó là mã hóa input dưới định dạng nào đó rồi gửi cho ứng dụng mà sau đó input đó có thể được giải mã theo định dạng hacker mong muốn. Ví dụ, ta có một số cách mã hóa dấu nháy đơn như

sau:

Biểu diễn Hình thức mã hóa

%27 Mã hóa URL (URL encoding)

%2527 Mã hóa kép URL (double URL encoding),

trường hợp này dấu % trong %27 cũng được mã hóa

%u0027 Biểu diễn dạng ký tự Unicode %u02b9 Biểu diễn dạng ký tự Unicode %ca%b9 Biểu diễn dạng ký tự Unicode

' Thuộc tính HTML

&#x27 Thuộc tính HTML dạng hexa &#39 Thuộc tính HTML dạng decimal

Không phải tất cả các hình thức biểu diễn trên có thể được thông dịch ra thành dấu nháy đơn như mong muốn mà tùy thuộc vào từng điều kiện cụ thể (ví dụ giải mã ở mức ứng dụng, giải mã ở WAF hay ở Web server, …). Nói chung là khó dự đoán được kết quả việc thông dịch dạng mã hóa trên.

Chính vì những lý do như trên, để thuận lợi cho quá trình kiểm tra dữ

liệu đầu vào và đầu ra, chúng ta cần xây dựng các mô hình chuẩn hóa dữ

liệu dưới một dạng đơn giản. Một mô hình có thể xem xét như, ban đầu giải mã dưới dạng URL, sau đó giải mã dưới dạng HTML, có thể thực hiên vài lần. Tuy nhiên có thể sẽ tin cậy hơn nếu chúng ta chỉ thực hiện giải mã theo định dạng phổ biến nhất nào đó đúng 1 lần, nếu phát hiện dấu hiệu nghi vấn, lập tức từ chối dữ liệu đó.

Một phần của tài liệu SQL injection - tấn công và cách phòng tránh (Trang 60 - 61)