Giới thiệu
Tính năng tạo giỏhàng, đặt hàng và mua hàng đƣợc cài đặt trên hầu hết các trang web bán hàng trực tuyến. Lỗi trong logic xử lý và việc thiếu kiểm tra các bƣớc thực hiện có thể cho phép kẻ tấn công mua hàng mà không thanh toán, hoặc thêm hàng vào đơn hàng sau khi đã thanh toán. Các bƣớc cần thực hiện để mua hàng trên trang web theo trật tự nhƣ sau:
63 Bƣớc 1: Duyệt danh mục sản phẩm và chọn sản phẩm đƣa vào giỏ hàng.
Bƣớc 2: Xem, cập nhật giỏ hàng và xác nhận đơn hàng. Bƣớc 3: Nhập thông tin thanh toán.
Bƣớc 4: Nhập thông tin giao hàng.
Giả thiết
Các bƣớc trong quy trình mua hàng phải đƣợc thực hiện đúng trật tự và các bƣớc đƣợc hiển thị theo các liên kết (link) và các form đƣợc hiển thị trên trình duyệt. Tuy nhiên, việc kiểm tra trình tự thực hiện không đƣợc thực thi chặt chẽ. Với bất kỳ ngƣời dùng nào, để mua hàng cần thực hiện bƣớc Nhập thông tin thanh toán.
Tấn công
Do ngƣời dùng có khảnăng điều khiển các yêu cầu, nên họ có thể thực hiện các bƣớc trong lƣu trình mua hàng theo trật tự bất kỳ. Kẻ tấn công có thể mua hàng bằng cách thực hiện Bƣớc 1, 2, bỏqua Bƣớc 3: Nhập thông tin thanh toán và chuyển thẳng sang Bƣớc 4. Kẻ tấn công cũng có thể thực hiện đầy đủ các bƣớc để mua hàng, sau đó quay lại thêm hàng vào đơn hàng đểtăng sốlƣợng mà không phải thanh toán thêm tiền.
Phòng chống
Ngoài việc hiển thị các bƣớc theo trật tựđể định hƣớng ngƣời dùng, cần kiểm tra chặt chẽ trật tự thực hiện cũng nhƣ logic các bƣớc. Chẳng hạn, ngƣời dùng chỉ có thể sang đƣợc Bƣớc 4 nếu đã hoàn tất Bƣớc 3. Nếu ngƣời dùng cốtình sang Bƣớc 4 mà chƣa hoàn tất Bƣớc 3, hệ thống tự động chuyển hƣớng về Bƣớc 3. Khi ngƣời dùng đã hoàn thiện Bƣớc 3, đơn hàng chuyển sang trạng thái đã thanh toán và cấm cập nhật, để ngăn chặn ngƣời dùng chỉnh sửa sốlƣợng hàng, hoặc thêm sản phẩm vào đơn hàng.