Chắc hẳn các bạn cũng đã nghe ở đâu đó từ CSRF này rồi đúng không? hoặc khi các bạn sử dụng các framework cũng thấy có nó ,... Nhưng các bạn chưa hiểu nó là gì? => Bài này mình sẽ giúp mọi người giải đáp thắc mắc về nó! Show 1, CSRF Là gì?-CSRF là viết tắt của từ "Cross-Site Request Forgery", đây là một kỹ thuật tấn công sử dụng quyền chứng thực của người dùng để thực hiện các hành động trên một website khác. -Kỹ thuật này được xuất hiện lần đầu tiên vào năm 1990 nhưng nó chưa được phát hiện một cách trực tiếp, cho đến năm 2007 trở đi thì nó mới nổi lên rầm rộ (vụ hơn 18tr người dùng ebay tại hàn quốc bị lộ thông tin các nhân). . Kỹ thuật này được nhận xét là khá nguy hiểm và hậu quả mà nó gây ra không thể kể đến được :D. Và cũng chính các ông lớn như Youtube, facebook,.. cũng đã từng dính phải các lỗi này. 2, Các hình thức tấn công.-Như các bạn đã biết, thì các ứng dụng website đều thực hiện giao thức HTTP để nhận yêu cầu từ người dùng để thự thi các lệnh tương ứng. Và dựa vào cách này thì các Hacker có thể nhúng kèm vào một số request đến các ứng dụng web khác khi bạn vào một website có chứa mã độc. Hãy tưởng tượng bạn đang làm admin của một website nào đó chẳng hạn, mà khi đó bạn đang chưa logout ra khỏi hệ thống quản trị (phiên làm việc vẫn còn) và bạn đi sang một diễn đàn khác đọc tin tức hay làm gì đó. Khi này hacker có thể chèn một mã độc dạng như sau để có thể thực thi một vài hành động trên trang web của bạn (ở đây mình demo là xóa tất cả bài viết): <img heigth="0" width="0">-Trường hợp trên sẽ hoàn toàn đúng nếu như bạn chưa đăng xuất ra khỏi hệ thống web của bạn. Ngoài cách trên thì hacker có thể thực thi được CSRF qua các HTML tag sau nữa: <iframe ></iframe> <link rel="stylesheet" type="text/css" href="http://examole.com/delete/all_post"> <script type="text/javascript" charset="utf-8" async defer></script> <p style="background-image: url(http://examole.com/delete/all_post")"></p>
3, Các cách phòng tránh.-Tuy rằng lỗi này rất phổ biến, nhưng phòng trống nó lại rất đơn giản. Các bạn có thể phòng trống bằng các cách sau: Phòng trống phía client
Phía Server
4, Lời kết.-Chúng ta nên sử dụng các cách này để bảo vệ chính các website của mình và của khách hàng. Để giảm thiểu được những điều không mong muốn có thể xảy ra.
Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail! Vấn đề bảo mật website có thể nói là rất quan trọng. CSRF là một kiểu tấn công diễn ra khá phổ biến hiện nay trên các website không bảo mật. Nếu bạn là một lập trình viên thì cần nắm rõ kiểu tấn công này để đảm bảo tính bảo mật cho ứng dụng web của mình. CSRF hay còn gọi là kỹ thuật tấn công “Cross-site Request Forgery“, nghĩa là kỹ thuật tấn công giả mạo chính chủ thể của nó. CSRF nói đến việc tấn công vào chứng thực request trên web thông qua việc sử dụng Cookies. Đây là nơi mà các hacker có khả năng sử dụng thủ thuật để tạo request mà bạn không hề biết. Vì vậy, một CSRF là hacker lạm dụng sự tin tưởng của một ứng dụng web trên trình duyệt của nạn nhân. CSRF là một kiểu tấn công gây sự nhầm lẫn tăng tính xác thực và cấp quyền của nạn nhân khi gửi một request giả mạo đến máy chủ. Vì thế một lỗ hổng CSRF ảnh hưởng đến các quyền của người dùng ví dụ như quản trị viên, kết quả là chúng truy cập được đầy đủ quyền. Khi gửi một request HTTP, trình duyệt của nạn nhân sẽ nhận về Cookie. Các cookie thường được dùng để lưu trữ một session (Đọc thêm bài Session là gì? để hiểu thêm cách hoạt động của Session và cookies) để định danh người dùng không phải xác thực lại cho mỗi yêu cầu gửi lên. Nếu phiên làm việc đã xác thực của nạn nhân được lưu trữ trong một Cookie vẫn còn hiệu lực, và nếu ứng dụng không bảo mật dễ bị tấn công CSRF. Kẻ tấn công có thể thử dụng CSRF để chạy bất cứ requets nào với ứng dụng web mà ngay cả trang web không thể phân biệt được request nào là thực hay giả mạo. Ví dụ để hiểu rõ hơn, khi ứng dụng web có một chức năng đơn giản đó là thay đổi mật khẩu người dùng. Việc gửi lên server theo phương thức HTTP GET thông thường. Nội dung gửi lên là password mới và confirm lại password vừa nhập:
Như vậy khi Victim (User) vô tình vào trang web-hacker-gia-mao .com đã reset password của bản thân tại trang website-cua-ban .com. Hacker nếu biết thông tin username sẽ thử vào với password đã cài đặt:hacked và có thể vào một cách bình thường. Cross-Site Request Forgery (CSRF) sắp hết thời?!! Dựa trên nguyên tắc của CSRF “lừa trình duyệt của người dùng (hoặc người dùng) gửi các câu lệnh HTTP”, thông thường để tránh tấn công ta sẽ chia làm hai đối tượng, một là cách một là phái client (người dùng cuối) và hai là phía server. Có thể bạn quan tâm SQL Injection là gì? Cách giảm thiểu và phòng ngừa SQL Injection Những góc khuất "đeo bám" người làm nghề lập trình Cách mà một dòng code đã thay đổi cuộc đời tôi! Để tránh trở thành nạn nhân của các cuộc tấn công CSRF nên thực hiện một số lưu ý sau:
Cho đến nay vẫn chưa có biện pháp nào có thể phòng chống triệt để CSRF. Sau đây là một vài kĩ thuật sử dụng.
TopDev vừa giới thiệu xong các kiến thức về CSRF là gì? Tìm hiểu kỹ thuật tấn công CSRF cũng như cách phòng chống tấn công giả mạo CSRF. Hy vọng những thông tin trong bài viết sẽ giúp ích cho các bạn đang tìm kiếm thông tin. Chúc các bạn vui vẻ! Fat Model - Bạn sẽ đặt logic ở đâu? |