Chương 10: CSRF — Cross-Site Request Forgery
Khái niệm
CSRF (Cross-Site Request Forgery — Giả mạo yêu cầu chéo trang) là tấn công khiến người dùng đã xác thực vô tình thực hiện hành động không mong muốn trên một web application.
Mức độ nguy hiểm: Trung bình-Cao — Phụ thuộc vào hành động có thể bị giả mạo (chuyển tiền, đổi email/password, xóa dữ liệu).
CSRF khai thác sự thật: browser tự động gửi cookies trong mọi request, kể cả requests được trigger từ trang web khác.
Điều kiện để CSRF xảy ra
Cần đủ 3 điều kiện:
- Relevant action: Có hành động nhạy cảm (đổi email, chuyển tiền, thay đổi quyền)
- Cookie-based session: App dùng cookie để track session
- Predictable parameters: Hacker biết trước tất cả parameters cần thiết
Cách hoạt động
Victim đang login bank.com (có session cookie)
Hacker tạo trang evil.com với form ẩn:
<form action="https://bank.com/transfer" method="POST">
<input type="hidden" name="to" value="hacker_account">
<input type="hidden" name="amount" value="1000">
</form>
<script>document.forms[0].submit();</script>
Khi victim vào evil.com:
1. Form tự submit đến bank.com
2. Browser tự động đính kèm bank.com cookies
3. bank.com thấy valid session → thực hiện transfer
4. Hacker nhận 1000 đơn vị tiền