Các phương pháp HTTP: Get và Post
Khi bạn tấn công một ứng dụng web, bạn sẽ làm việc với 2 phương pháp HTTP được sử dụng phổ biến nhất là
Get và Post. Bạn cần nhận thức được những khác biệt quan trọng giữa 2 phương pháp này, vì chúng có thể làm
ảnh hưởng đến an toàn ứng dụng web nếu không được chú ý đến.
Phương pháp Get được thiết kế để tải tài nguyên. Nó có thể được sử dụng để gửi các tham số tới tài nguyên
được yêu cầu trong chuỗi truy vấn URL.Cái này làm người dùng có thể đánh dấu (bookmark) một URL cho một tài
nguyên động để họ có thể sử dụng lại sau. Hay người dùng khác có thể tải tài nguyên tương ứng trên một chuỗi
truy vấn liên tục (như trong một truy vấn tìm kiếm được đánh dấu), các URLs được hiển thị trên màn hình và được
ghi lại tại các vị trí khác nhau như lịch sử trình duyệt hay access log của máy chủ web. Chúng cũng được chuyển
đi trong header Referer tới các sites khác khi đi theo các link ngoài. Ví những lí do này, chuỗi truy vấn
kiểu này không nên được sử dụng để truyền tải thông tin nhạy cảm.
Phương pháp Post được thiết kế để thực hiện các hành động. Với phương pháp này, các tham số yêu cầu có thể được
gửi trong cả chuỗi truy vấn URL và trong phần thân của thông điệp. Mặc dù URL vẫn có thể được đánh dấu, các tham
số gửi trong phần thân thông điệp bị loại khỏi bookmark. Các tham số này cũng bị loại khỏi các vị trí khác nhau
trong đó ghi lại các URLs được duy trì và khỏi header Referer.
Vì phương pháp Post được thiết kế cho thực hiện các hành động, nếu một người dùng click nút back của
trình duyệt để quay trở lại một trang cái được truy cập sử dụng phương pháp này, trình duyệt sẽ không tự
động phát hành lại yêu cầu. Thay vào đó, nó sẽ cảnh báo người dùng về cái nó sắp làm như trong hình dưới. Cái
này ngăn chặn người dùng thưc hiện hành động không mong muốn nhiều hơn một lần. Vì lí do này, các yêu cầu
Post luôn được sử dụng khi một hành động đang được thực hiện.