HTML encoding là gì?
Thậm chí trong HTML, nó là quan trọng để xem xét tích hợp thông tin của các URLs và đảm bảo rằng user agents
(trình duyệt) hiển thị dữ liệu đúng đắn.
Có hai vấn đề chính để xử lí: thông tin cho user agent trên đó mã hóa kí tự sẽ được sử dụng trong tài liệu và
dành ý nghĩa thực của một vài kí tự cái có ý nghĩa đáng kể.
Để tạo các cuộc tấn công tiềm tàng và test, bạn không chỉ nên biết loại encoding làm việc như thế nào, mà còn
biết cơ chế giải mã làm việc như thế nào.
Mã hóa kí tự tài liệu
Có một vài cách thức để hướng dẫn user agent trên đó mã hóa kí tự được sử dụng trong một tài liệu đã cho.
Các phương pháp này sử dụng giao thức HTTP và/hay chỉ lệnh HTML.
Định nghĩa mã hóa kí tự sử dụng HTTP
Theo HTTP 1.1 RFC, các tài liệu được chuyển qua HTTP có thể gửi một tham số charset trong header để chỉ ra mã hóa
kí tự của tài liệu được gửi. Đây là HTTP header: Content-Type.
Nếu header này được gửi, chúng ta sẽ thấy thứ gì đó trông như thế này:
Content-Type:text/html;charset=utf-8
Content-Type headers chỉ ra dạng đa phương tiện (media type) của phần thân được gửi tới máy nhận. Trong trường
hợp của phương pháp HEAD, nó chỉ ra dạng media cái sẽ được gửi nếu yêu cầu là GET. Nếu không được định nghĩa,
RFC định nghĩa như charset mặc định ISO-8859-1.
Để khiến máy chủ gửi ra thông tin charset phù hợp, nó là có thể thay đổi thiết lập máy chủ hay sử dụng ngôn ngữ
scripting phía máy chủ.
Hãy nhìn vào một vài ví dụ trong các ngôn ngữ lập trình khác nhau.
PHP> Sử dụng hàm header() để gửi HTTP header thô:
header(‘Content-type:text/html;charset=utf-8’);
ASP.NET> Sử dụng response object:
<%Response.charset=”utf-8″%>
JSP> Sử dụng chỉ lệnh trang:
<%@page contentType=”text/html;charset=UTF-8″%>