Bảo vệ chống lại việc gửi lên (post) không hợp lệ

Một phần của tài liệu Xây dựng hệ thống bảo vệ ứng dụng web dựa trên tường lửa modsecurity và iptables (Trang 32 - 35)

Nhại mẫu (Form spoofing) là khi một ai đó thực hiện gửi lên đến một trong các biểu mẫu của ta từ một nơi nào đó mà ta không mong đợi. Cách dễ nhất để nhại mẫu chỉ đơn giản là tạo ra một trang web đệ trình một biểu mẫu,

chuyển theo tất cả các giá trị. Do các ứng dụng web là phi trạng thái (stateless), nên không có cách nào để chắc chắn tuyệt đối là dữ liệu đã được gửi lên từ nơi mà ta muốn nó đến từ đó. Mọi thứ từ các địa chỉ IP cho đến tên máy chủ, cuối cùng rồi đều có thể bị nhại. Liệt kê 13 hiển thị một biểu mẫu điển hình cho phép ta nhập thông tin.

Hình 2.13: Liệt kê 13 – Một biểu mẫu để xử lý văn bản

Liệt kê 14 cho thấy một biểu mẫu sẽ được gửi đến biểu mẫu trong Liệt kê 13. Để thử việc này, ta có thể đặt mẫu đó lên một trang web, sau đó ghi lưu mã trong Liệt kê 14 như một tài liệu HTML trên máy tính của ta. Khi ta đã lưu lại biểu mẫu này, hãy mở nó ra trong một trình duyệt. Sau đó ta có thể điền dữ liệu vào và đệ trình biểu mẫu đó rồi quan sát trong khi dữ liệu được xử lý.

Tác động tiềm tàng của việc nhại mẫu thực ra là ở chỗ nếu ta có một biểu mẫu mà có các hộp thả xuống, nút radio, hộp kiểm, hoặc các đầu vào hạn chế khác, những hạn chế đó không có ý nghĩa gì cả nếu biểu mẫu đó bị giả mạo. Xem xét mã trong Liệt kê 15, trong đó chứa một biểu mẫu với dữ liệu không hợp lệ.

Hình 2.15: Liệt kê 15 – Một biểu mẫu với dữ liệu không hợp lệ

Nếu ta có một hộp thả xuống hoặc một nút radio, hạn chế người sử dụng chỉ có một số lượng đầu vào nhất định, ta có thể bị thuyết phục rằng không phải lo lắng về việc kiểm tra hợp lệ đầu vào. Rốt cuộc, biểu mẫu đầu vào của ta bảo đảm rằng người sử dụng chỉ có thể nhập vào một số dữ liệu nhất định, đúng không? Để hạn chế việc nhại mẫu, hãy lập ra các biện pháp để bảo đảm rằng những người gửi dữ liệu lên đúng là những người khai nhận rằng họ là những người đó. Một kỹ thuật mà ta có thể sử dụng là thẻ bài sử dụng một lần (single-use token), nó không làm cho việc giả mạo mẫu của ta bất khả thi nhưng làm cho nó trở thành một điều rắc rối kinh khủng. Vì thẻ bài thay đổi mỗi khi mẫu được rút xuống, một kẻ xâm nhập tương lai cần phải lấy một cá thể của biểu mẫu đang gửi, rút thẻ bài, và đặt nó vào phiên bản giả mạo của biểu mẫu đó. Kỹ thuật này làm cho rất khó có khả năng một ai đó lập ra một biểu mẫu web lâu dài để gửi các yêu cầu không mong muốn đến ứng dụng của ta. Liệt kê 16 đưa ra một thí dụ về một thẻ bài biểu mẫu dùng một lần.

Hình 2.16: Liệt kê 16 – Sử dụng một thẻ bài biểu mẫu một lần

Một phần của tài liệu Xây dựng hệ thống bảo vệ ứng dụng web dựa trên tường lửa modsecurity và iptables (Trang 32 - 35)