Bảo vệ chống lại các giả mạo truy vấn liên trang (CSRF)

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 35 - 37)

Các giả mạo truy vấn liên trang (các tấn công CSRF-Cross-Site Request Forgeries) khai thác các lợi thế về quyền ưu tiên của người sử dụng để thực hiện tấn công. Trong một cuộc tấn công CSRF, người sử dụng của ta có thể dễ dàng trở thành các kẻ đồng loã không bị nghi ngờ. Liệt kê 17 cung cấp một thí dụ về một trang web thực hiện một số hành động. Trang web này tìm kiếm thông tin đăng nhập của người sử dụng từ cookie. Khi mà cookie này hợp lệ, trang web sẽ xử lý yêu cầu.

Hình 2.17: Liệt kê 17 - Một thí dụ của CSRF

Các cuộc tấn công CSRF thường được thực hiện dưới dạng các thẻ <img> vì trình duyệt gọi URL một cách không ý thức để lấy hình ảnh. Tuy nhiên, nguồn hình ảnh dễ dàng có thể chỉ là URL của một trang web trên cùng

Khi thẻ <img> này được đặt trong một cuộc tấn công XSS — cũng là các tấn công phổ biến nhất được ghi chép lại — người sử dụng dễ dàng có thể làm một việc gì đó với quyền ưu tiên được cấp mà không biết mình đã làm — như vậy, có thể giả mạo.

Để tự bảo vệ ta chống lại CSRF, hãy sử dụng cách tiếp cận thẻ bài sử dụng một lần mà ta áp dụng tuân theo thói quen xác minh các biểu mẫu gửi lên. Ngoài ra, sử dụng biến hiển $_POST thay vì $_REQUEST. Liệt kê 18 trình bày một ví dụ xấu về trang web mà xử lý y như thế — cho dù trang web đó được gọi bởi một yêu cầu GET hay bởi vì có một biểu mẫu gửi lên đến nó.

Hình 2.18: Liệt kê 18 – Lấy dữ liệu từ $_REQUEST

Liệt kê 19 cho thấy một phiên bản đã làm sạch của trang này, sẽ chỉ làm việc khi POST biểu mẫu.

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 35 - 37)