[Bảo mật] CSRF là gì?
Những khái niệm cơ bản
Hiện nay vấn đề bảo mật đang được đặt lên hàng đầu tại những website lớn và có sức ảnh hưởng. Một trong số những kiểu tấn công phổ biến hiện nay ngoài SQL Injection, XSS,...thì CSRF là một loại tấn công tinh vi hơn cả.
CSRF là gì?
CSRF (Cross-site Request Forgery) là hình thức tấn công lợi dụng quyền chứng thực của người dùng để gửi đi các đoạn request đến server để thực hiện các hành động nhất định.
Hiểu một cách đơn giản, khi người dùng (nhân viên ngân hàng) đăng nhập vào một website (website ngân hàng) thì họ sẽ có một quyền chứng thực được server tin tưởng để gửi các request chứa các hành động cụ thể để tác động trực tiếp/gián tiếp lên server (máy chủ).
Lúc này, một hacker gửi một tin nhắn kèm theo một đoạn request không hợp lệ (request yêu cầu chuyển một khoản tiền đến một tài khoản nhất định) qua email của người dùng này. Người dùng này lỡ ấn nhầm vào link và gián tiếp thực hiện request không hợp lệ trên bằng quyền chứng thực của mình với máy chủ.
Hiểu một cách đơn giản, khi người dùng (nhân viên ngân hàng) đăng nhập vào một website (website ngân hàng) thì họ sẽ có một quyền chứng thực được server tin tưởng để gửi các request chứa các hành động cụ thể để tác động trực tiếp/gián tiếp lên server (máy chủ).
Lúc này, một hacker gửi một tin nhắn kèm theo một đoạn request không hợp lệ (request yêu cầu chuyển một khoản tiền đến một tài khoản nhất định) qua email của người dùng này. Người dùng này lỡ ấn nhầm vào link và gián tiếp thực hiện request không hợp lệ trên bằng quyền chứng thực của mình với máy chủ.
Cách phòng tránh
Hiện nay, một số cách phòng tránh được đề cập đến như khái niệm "token". Token đơn giản là một đoạn mã sẽ đi kèm theo những request cụ thể mà người dùng gửi đến server. Sau đó server sẽ check token trên để xem có giống với đoạn mã token bên server đã lưu hay không. Nếu đúng thì cho tiến hành tiếp tục các trao đổi (request - response).
Bước 1: Người dùng gửi 1 GET request lên server.
Bước 2: Server gửi lại một "token" và được lưu vào Cookie trình duyệt bên phía người dùng.
Bước 3: Người dùng submit (gửi) một form kèm data (POST request) và kèm theo "token" có trong Cookie để server xác thực.
Bước 4: Sau khi xác thực thì server sẽ quyết định việc chấp nhận / từ chối trao đổi request (request - response) từ phía người dùng.
(sẽ còn cập nhật thêm)
Nhận xét
Đăng nhận xét