Lỗ hổng CSRF là gì? Cách cấu hình SameSite Cookie & CSRF Token bảo vệ trang Admin

2026-07-24 8 phút đọcBởi Uwmee Software

Hãy tưởng tượng bạn đang đăng nhập vào trang Quản trị (Admin Dashboard) của website. Trong lúc đó, bạn mở một tab mới xem tin tức và lỡ bấm vào một trang web lừa đảo. Ngay lập tức, trang web lừa đảo kia âm thầm **gửi một yêu cầu xóa toàn bộ dữ liệu người dùng trên trang Admin của bạn** mà bạn không hề hay biết! Đó chính là đòn tấn công CSRF (Cross-Site Request Forgery - Giả mạo yêu cầu giữa các trang).

1. Tấn công CSRF diễn ra như thế nào?

Tấn công CSRF lợi dụng cơ chế của trình duyệt: **Mỗi khi gửi Request tới một domain, trình duyệt tự động đính kèm toàn bộ Cookie phiên làm việc (Session Cookie) của domain đó**. Tin tặc ép trình duyệt của bạn gửi một lệnh chuyển tiền hoặc đổi mật khẩu ngầm mà Server vẫn tưởng là do bạn chủ động bấm!

2. 2 Giải pháp triệt tiêu lỗ hổng CSRF hiệu quả nhất

1. Cấu hình thuộc tính SameSite cho Cookie (Giải pháp hiện đại)

Thiết lập thuộc tính SameSite=Lax hoặc SameSite=Strict khi tạo Cookie phiên đăng nhập:

  • SameSite=Strict: Trình duyệt TUYỆT ĐỐI KHÔNG tự động gửi Cookie khi Request xuất phát từ một website khác.
  • SameSite=Lax (Mặc định): Trình duyệt chỉ gửi Cookie cho các liên kết điều hướng an toàn (GET link), chặn 100% các lệnh POST/PUT/DELETE từ bên ngoài.

2. Sử dụng Anti-CSRF Token (Synchronizer Token Pattern)

Tạo một mã Token bí mật ngẫu nhiên mã hóa hai chiều và đính kèm vào mỗi Form hoặc Header Request. Khi người dùng bấm gửi, Server đối chiếu mã Token này với Session của người dùng.

3. Bảo mật CSRF trong Next.js App Router

Khi sử dụng các thư viện Authentication chuẩn mực như NextAuth.js (Auth.js), hệ thống đã tích hợp sẵn cơ chế **Anti-CSRF Token và SameSite Cookie mã hóa tự động** cho bạn.

Kết luận

Bảo mật chống CSRF là yêu cầu bắt buộc để bảo vệ trang Quản trị và các giao dịch tài chính nhạy cảm. Uwmee Software thiết lập hệ thống Cookie SameSite mã hóa bảo mật 100% cho các dự án Web App. Đọc thêm bài viết lỗ hổng SQL Injection là gì.

Cần vượt Closed Testing nhanh chóng?

Đội 12+ tester thật của Uwmee tương tác hằng ngày đủ 14 ngày — trọn gói chỉ 300.000đ, chạy lại miễn phí nếu không đạt.

Câu hỏi thường gặp