CSRF là gì? Tìm hiểu cách chống tấn công giả mạo chủ thể

Mặc dù CSRF không phải là một khái niệm mới trong lĩnh vực bảo mật nhưng nhiều lập trình viên vẫn chưa hoàn toàn hiểu rõ về cách thức hoạt động cũng như các biện pháp phòng tránh hiệu quả. Bài viết này của LPTech sẽ giúp bạn hiểu rõ CSRF là gì, cách thức hoạt động của tấn công CSRF và quan trọng hơn là các phương pháp phòng chống CSRF để bảo vệ ứng dụng của bạn khỏi những mối nguy hiểm này. Cùng tìm hiểu ngay nhé!

CSRF là gì?

CSRF (Cross-Site Request Forgery) là một hình thức tấn công mà kẻ xấu giả mạo người dùng để thực hiện các hành động, yêu cầu như thay đổi mật khẩu, nhắn tin lừa đảo, chuyển tiền,... trên các ứng dụng và ứng dụng web mà người bị giả mạo không hề hay biết. 

Ví dụ, nếu người dùng đã đăng nhập vào tài khoản ngân hàng trực tuyến và kẻ tấn công biết được phiên đăng nhập của người dùng, kẻ tấn công có thể gửi yêu cầu chuyển tiền từ tài khoản của người dùng đến tài khoản của mình mà không cần người dùng phải làm gì.

CSRF hoạt động ra sao?

Để hiểu rõ hơn về CSRF, trước hết bạn cần biết rằng các ứng dụng sử dụng session để theo dõi một khi người dùng đã đăng nhập. Một session thường được xác định bằng một cookie mà trình duyệt sẽ tự động gửi cùng với mỗi yêu cầu gửi đến server.

Lúc này, CSRF sẽ hoạt động khi người dùng bị dẫn dắt hoặc lừa đến một trang web hay ứng dụng nào đó bởi hacker, lúc này kẻ tấn công có thể tận dụng chính cookie của người dùng để thực hiện hành động thay mặt họ. Khi hành động giả mạo được gửi từ của hacker, vì cookie và session không có gì khác nên server mặc định là đều từ một người dùng.

> Tìm hiểu thêm về các thuật ngữ cookie, session và cách chúng hoạt động tại:Session là gì? Cách phân biệt giữa session và cookie

Ví dụ về CSRF

Giả sử bạn đang đăng nhập vào trang web ngân hàng của mình và muốn chuyển tiền. Khi bạn đăng nhập, session của bạn được lưu trong cookie. Sau đó, bạn truy cập một trang web khác và trang này chứa một đoạn mã JavaScript giả mạo gửi yêu cầu chuyển tiền từ tài khoản của bạn đến tài khoản hacker. Vì bạn vẫn đang có phiên làm việc mở với ngân hàng, trình duyệt sẽ tự động gửi cookie kèm theo yêu cầu đó. Server của ngân hàng không thể phân biệt được yêu cầu này từ một yêu cầu hợp pháp của bạn và hành động hack chuyển tiền sẽ diễn ra mà bạn không hay biết.

Cách ngăn chặn tấn công CSRF

Mặc dù tấn công CSRF là một mối nguy hiểm nghiêm trọng, nhưng nó hoàn toàn có thể phòng ngừa được nếu biết áp dụng các biện pháp bảo mật thích hợp. Dưới đây là một số phương pháp hiệu quả giúp ngăn chặn tấn công CSRF.

Phòng chống từ phía User

Mặc dù việc bảo vệ khỏi tấn công CSRF chủ yếu phải được thực hiện từ phía server, nhưng người dùng cũng có thể góp phần quan trọng trong việc giảm thiểu nguy cơ bị tấn công. Dưới đây là một số hành động mà người dùng có thể thực hiện để bảo vệ chính mình khỏi các cuộc tấn công CSRF:

  • Hạn chế nhấp vào các liên kết hoặc tải về tập tin từ những trang web không rõ nguồn gốc hoặc không đáng tin cậy. 
  • Người dùng nên đảm bảo rằng trình duyệt của mình luôn ở phiên bản mới nhất, đồng thời cập nhật các plugin và tiện ích mở rộng (extensions) để giảm thiểu các lỗ hổng bảo mật.
  • Sử dụng phần mềm bảo mật (anti-virus, anti-malware) giúp giảm thiểu khả năng bị tấn công thông qua các trang web lừa đảo.
  • Tránh đăng nhập vào nhiều tài khoản trực tuyến và giữ phiên làm việc (session) mở trên nhiều ứng dụng hoặc trang web cùng lúc.
  • Hạn chế sử dụng các mạng wifi công cộng.
  • Bật xác thực hai yếu tố (2FA) làm giảm khả năng kẻ tấn công có thể thực hiện các hành động mà không có sự đồng ý của người dùng.

Phòng chống từ phía Server

Từ phía server, có một số cách chủ yếu để phòng chống CSRF, bao gồm việc sử dụng csrf token, captcha và một số chiến lược bảo mật khác.

  • Sử dụng CAPTCHA: CAPTCHA sẽ giúp xác minh rằng yêu cầu đến từ người dùng thực hay không, từ đó tăng cường khả năng bảo vệ khi kết hợp với các phương thức khác.
  • Sử dụng CSRF Token: Server sẽ tạo và kiểm tra CSRF token duy nhất cho mỗi yêu cầu để đảm bảo tính hợp lệ và ngăn chặn yêu cầu giả mạo.
  • Sử dụng cookie riêng cho Admin: Tách cookie cho tài khoản quản trị và đặt thuộc tính bảo mật giúp bảo vệ các tài khoản có quyền cao hơn.
  • Thường xuyên kiểm tra IP: Kiểm tra IP trong suốt phiên làm việc để phát hiện các thay đổi bất thường, ngăn ngừa tấn công CSRF hiệu quả hơn.

XSS và CSRF có mối liên hệ gì?

XSS và CSRF đều là hai loại tấn công mạng phổ biến. Mặc dù chúng khác nhau về cơ chế hoạt động nhưng cả hai có mối liên hệ với nhau qua việc khai thác lỗ hổng bảo mật để thao túng hoặc lợi dụng các thông tin nhạy cảm của người dùng trên một trang web.

XSS và CSRF có thể bổ trợ và tăng cường sức mạnh cho nhau trong các cuộc tấn công phức tạp. Một kẻ tấn công có thể sử dụng XSS để thu thập token CSRF của người dùng, hoặc chèn mã nhằm thực hiện các yêu cầu giả mạo từ phía trình duyệt, giống như CSRF. Khi XSS khai thác thành công, kẻ tấn công có thể lấy được thông tin người dùng hoặc thực hiện hành vi tương tự như CSRF mà không cần người dùng phải nhấp vào liên kết nào.

Tấn công CSRF là một trong những mối nguy hiểm phổ biến trong phát triển ứng dụng web. Tuy nhiên, với các biện pháp phòng ngừa thích hợp từ phía người dùng và server, bạn hoàn toàn có thể bảo vệ ứng dụng khỏi loại tấn công này. Qua bài viết này, LPTech hy vọng rằng bạn đã hiểu rõ về CSRF và biết cách phòng chống mối nguy hiểm này hiệu quả nhé!

Thông tin liên hệ

Nếu bạn có thắc mắc gì, có thể gửi yêu cầu cho chúng tôi, và chúng tôi sẽ liên lạc lại với bạn sớm nhất có thể .

Công ty TNHH TMĐT Công nghệ LP

Giấy phép kinh doanh số 0315561312/GP bởi Sở Kế Hoạch và Đầu Tư TP. Hồ Chí Minh.

Văn phòng: Lầu 4, Toà nhà Lê Trí, 164 Phan Văn Trị, Phường 12,Quận Bình Thạnh, HCMC

Hotline: 0338 586 864

Mail: sales@lptech.asia

Zalo:LP Tech Zalo Official

Liên hệ qua Zalo: 0338586864 ( hoặc bấm vào link này: http://lptech.asia/zalo-lptech). Hoặc nhập thông tin mà bạn cần hỗ trợ vào ô liên hệ bên dưới để lên lạc với LPTech nhé.

Bài viết cùng chuyên mục

Pentest là gì? Tầm quan trọng của kiểm thử xâm nhập

Tìm hiểu về phương pháp kiểm thử xâm nhập - Pentest, một giải pháp bảo mật thiết yếu cho doanh nghiệp trong thời đại số hóa.

NAT là gì? Phân loại NAT theo chức năng và cách...

NAT là một kỹ thuật mạng dùng để chuyển đổi địa chỉ IP của một gói data khi nó đi qua một thiết bị mạng như router hoặc tường lửa. Các...

Tấn công brute-force là gì? Cách phòng chống tấn...

Brute force là một hình thức tấn công mà các hacker thường sử dụng. Chúng thực hiện bằng các phần mềm tự động để thử mật khẩu tài khoản...

XSS là gì? Cách truy vết và phòng chống tấn công...

XSS, viết tắt của cụm từ Cross Site Scripting, là một lỗ hổng trong bảo mật mà các hacker sẽ sử dụng để cài đặt các phần mềm độc hại vào...

Trojan là gì? Cách nhận biết và phòng chống virus...

Trojan là gì? Đây là một loại virus độc hại được tạo ra để xâm nhập máy tính trái phép. Một khi đã xâm nhập vào, chúng sẽ phá hoại, làm...

Phishing là gì? Cách phòng chống lừa đảo bằng...

Phishing là một hình thức lừa đảo, giả mạo các tổ chức uy tín, người quen của nạn nhân để đánh cắp thông tin cá nhân như mật khẩu tài...

Bài viết mới nhất


Hibernate ORM là gì? Khi nào nên dùng hibernate...

Hibernate ORM là một khung làm việc mã nguồn mở hoạt động như một tầng trung gian giữa ứng dụng và cơ sở dữ liệutrong Java dùng để ánh xạ các đối...

cURL là gì? Các câu lệnh cơ bản để sử dụng cURL

cURL là công cụ mạnh mẽ giúp bạn gửi và nhận dữ liệu qua nhiều giao thức khác nhau. Tìm hiểu chi tiết về cURL và các tính năng, giao thức mà nó hỗ...

CQRS Pattern là gì? Design pattern chuyên tách...

Tìm hiểu thông tin chi tiết về CQRS Pattern. CQRS (Command Query Responsibility Segregation) là một pattern giúp tách biệt command và query cực...

Chúc mừng sinh nhật Sếp Phú

Một hành trình mới bắt đầu cùng nhiều thử thách mới. Với sự tự tin, kiên cường và bản lĩnh, LPTech tin chắc rằng Sếp Phú của LPTech sẽ có nhiều...

Bool là gì? Tìm hiểu về kiểu dữ liệu bool trong...

Boolean là một kiểu dữ liệu cơ bản trong lập trình với C/C++, Jav,... Bool dùng để biểu diễn các giá trị logic đúng (true) hoặc sai (false). Xem...

Unit Test là gì? Tìm hiểu về khái niệm kiểm thử...

Unit Test sẽ giúp người dùng có thể xây dựng dự án một cách hiệu quả, để biết được những thông tin hữu ích về Unit Test. Hãy theo dõi thông tin...

CSRF là gì? Tìm hiểu cách chống tấn công giả...

CSRF (Cross-Site Request Forgery) là một dạng tấn công trong các ứng dụng web. Tìm hiểu chi tiết về CSRF và cách bảo vệ ứng dụng khỏi nguy cơ này.

Middleware là gì? Tầm quan trọng của middleware...

Middleware là một đoạn mã trung gian nằm trong các ứng dụng web được thiết kế trên mô hình client-server. Tìm hiểu middleware là gì và ứng dụng của...

JWT là gì? Tìm hiểu về khái niệm JSON Web Token

JWT (JSON Web Token) là một phương thức xác thực bằng mã hóa phổ biến trong các ứng dụng web, giúp truyền tải thông tin, xác thực và ủy quyền một...

Shell là gì? Các loại môi trường dòng lệnh phổ...

Shell còn được gọi là môi trường dòng lệnh. Đây là nơi cho phép người dùng tương tác với hệ điều hành thông qua các dòng lệnh. Tìm hiểu về shell và...