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
' Thuộc tính HTML dạng hexa ' 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 đó.