II.1. Khái niệm
Thông tin có thể được chuyển đổi thông qua một biến ẩn của form, gọi là Hidden Form Field. Biến ẩn form không hiển thị trên màn hình trình duyệt nhưng người dùng có thể tìm thấy nội dung của nó trong “ view source ”, vì thế đây là một
điểm yếu để hacker lợi dụng bằng cách lưu nội dung trang web xuống trình duyệt, thay đổi nội dung trang và gửi đến trình chủ.
Chương 4: Thao tác trên tham số truyền
Ví dụ4.II.1-1: Form gốc có nội dung như sau:
<form action="http://www.tancong.com/cuahang.pl" method="POST"> ...
<input type="hidden" name="giaca" value="99.99"> ...
</form>
Nếu không có sự thay đổi nào thì yêu cầu đến trình chủ có nội dung :
POST /cuahang.pl HTTP/1.0 ...
giaca=99.99
Nhưng nếu hacker gán một giá trị khác cho trường “giaca” :
<form action="http://www.tancong.com/cuahang.pl" method="POST"> ...
<input type="hidden" name="giaca" value="0.99"> ... </form> thì yêu cầu sẽ thay đổi: POST /cuahang.pl HTTP/1.0 ... giaca=0.99
Ngoài việc thay đổi nội dung biến ẩn của form, hacker còn biến đổi nội dung các thành phần trong form, như chiều dài của một ô nhập dữ liệu để thực hiện việc tấn công “BUFFER OVERFLOW”, …
II.2. Một số biện pháp khắc phục
• Chỉ nên sử dụng biến ẩn của form để hiển thị dữ liệu trên trình duyệt, không
được sử dụng giá trị của biến để thao tác trong xử lí ứng dụng.
• Dùng biến HTTP_REFERER để kiểm tra nguồn gốc của yêu cầu gửi đến, tuy nhiên hacker có thể sử dụng Proxy để che dấu nguồn gốc thực của nó, vì vậy cũng không nên quá tin tưởng biến HTTP_REFERER để kiểm tra.
• Ghép tên và giá trị của biến ẩn thành một chuỗi đơn. Sử dụng thuật toán mã hoá MD5 hoặc một kiểu hash một chiều khác để tổng hợp chuỗi đó và lưu nó vào một hidden field gọi là “Chuỗi mẫu”.
Khi giá trị trong form được gửi đi, các thao tác như trên được thực hiện lại với cùng một khoá mà ta định trước. Sau đó đem so sánh với “Chuỗi mẫu”, nếu chúng không khớp nhau thì chứng tỏ giá trịtrong biểu mẫu đã bị thay đổi.
• Dùng một sessionID để tham chiếu đến thông tin được lưu trữ trên cơ sở dữ
Chương 4: Thao tác trên tham số truyền