4. THAO TÁC TRÊN THAM SỐ TRUYỀN
4.3. Thao tác trên cookie
4.3.1. Khái niệm
POST /cuahang.pl HTTP/1.0 ...
Ở phần thứ 2, tác giả đã trình bày cơ bản khái niệm về cookie. Trong mục này, tác giả chỉ trình bày cách thay đổi một cookie.
Vì cookie là thành phần lƣu trữ thông tin bảo mật nhất nên Cookie thƣờng đƣợc dùng để lƣu giữ trạng thái cho giao thức HTTP hơn là biến ẩn form và biến URL. Nó còn đƣợc dùng để lƣu trữ những thông tin của ngƣời dùng khi sử dụng ứng dụng và những dữ liệu khác của session. Tất cả các loại cookie nhƣ persistent hay non-persistent, secure hay insecure đều có thể bị thay đổi bởi ngƣời dùng và đƣợc gửi về cho trình chủ. Do đó hacker có thể thay đổi nội dung cookie để phá hoại ứng dụng.
Với những công cụ miễn phí nhƣ Winhex thì non-persistent cookie có thể bị thay đổi nội dung. Còn SSL chỉ có thể bảo vệ cookie trong quá trình truyền. Ví dụ: về cookie dùng để lƣu trữ thông tin cho ứng dụng web thông tin du lịch:
Cookie xác định ngƣời dùng này không phải là Admin (ADMIN=no), nhƣng nếu hacker thay đổi trƣờng này điều gì sẽ xảy ra? Hacker có thể thay đổi lại thành nhƣ sau:
Hacker lúc này mang vai trò là một ngƣời quản trị của ứng dụng:
4.3.2. Một số biện pháp khắc phục
Sử dụng đối tƣợng session lƣu trữ thông tin quan trọng trên máy chủ. Khi ứng dụng cần kiểm tra thông tin của một ngƣời dùng, ứng dụng sẽ dùng sessionID của ngƣời dùng để chỉ đến thông tin của ngƣời dùng đó trong cache hay cơ sở dữ liệu.
Xây dựng một cơ chế kiểm tra nội dung của cookie để tìm ra những giá trị
Cookie: lang=en-us; ADMIN=no; y=1 ; time=10:30GMT ;
không hợp lệ từ đó biết đƣợc cookie đó là giả. Ví dụ là nếu biến cờ “ngƣời quản trị” đƣợc đƣợc thiết lập là đúng trong cookie, nhƣng giá trị của số thứ tự ngƣời dùng trong cookie lại không giống nhƣ giá trị số thứ tự của “ngƣời quản trị” đƣợc lƣu trữ trên server.
Phƣơng pháp cuối cùng là mã hoá cookie. Có một số phƣơng pháp mã hoá nhƣ symmetric (dùng 1 khóa duy nhất cho cả mã hóa và giải mã) hay asymmetric (mã hóa dùng 2 khóa riêng biệt, một khóa dùng chung cho mã hóa và một khóa riêng để giải mã)