Session fixation là gì

     
Cách thức hoạt động

Việc xử trí session IDs không an ninh có thể khiến cho người dùng bị tấn công. Websites với tài khoản người dùng thông thường xúc tiến cơ chế đảm bảo để định danh người dùng và trả về cho người dùng. Sau khi xác thực, session sẽ được tạo. Server với browser vẫn hiều cùng nhau session ID, vậy đề nghị server sẽ rành mạch được người tiêu dùng với từng HTTP request. Giả dụ như hacker hoàn toàn có thể truy cập cho tới session ID của người tiêu dùng khác, họ rất có thể mạo danh người tiêu dùng khác. SESSION FIXATION là một phương thức tấn công mà hacker sử dụng để triển khai điều đó.

Bạn đang xem: Session fixation là gì

Trong bài viết này, Mal đã chỉ cho bạn cách thức hoạt động của lỗ hổng này, nếu như bạn chưa biết về nhân đồ gia dụng này thì hoàn toàn có thể tìm đọc trong series của mình. Giả sử website của người tiêu dùng passes session ID trong query string (chắc cũng hiếm tín đồ làm vậy :v). Mal chế ra URL có chưa session ID : www.hmstr.com?jsessionid=STEALING_UR_DATA.

Vic là một người dùng trong hệ thống của bạn, anh ta rất thích loài chuột hamster, cùng cũng đưa sử Mal biết được thư điện tử của bạn, hay là đoán được. Hắn gửi mang lại Vic một e-mail với mặt đường link thu hút về con chuột hamster, trỏ tới đường truyền đã được hắn craft

*

Vic click vào mặt đường dẫn, trả sử anh ta chưa login, trang của bạn sẽ chuyển hướng tới trang đăng nhập. Nó vẫn accepts session ID trước đó được sửa đổi bởi Mal bên trên URL. Lúc Vic đăng nhập thành công, session được establish, cùng anh ta hoàn toàn có thể enjoy bức ảnh gif về chuột hamster:

*

Tuy nhiên, bây chừ Mal có thể truy cập theo đường dẫn mà hắn vẫn gửi cho Vic, cùng hắn cũng hoàn toàn có thể truy cập cùng với session của Vic, có nghĩa là hắn sẽ đăng nhập với tài khoản của Vic.

Bảo vệ

Nhìn thông thường thì nó cũng hãn hữu gặp, dễ khai thác và hết sức nguy hiểm.

Với kiểu tấn công này, hacker rất có thể bypass phương thức xác xắn của bạn, và tệ rộng là bạn khó có thể phát hiện nay khi nó xảy ra. Có vài giải pháp chống lỗ hổng này như sau.

Xem thêm: Man Month Là Gì - Sao Vẫn Còn Mãi Dùng Man

không truyền Session ID trong đổi mới GET/POST

Truyền session ID trong query strings, hoặc trong body của POST request đó là vấn đề. Bên cạnh đó session ID có thể bị nhỉ theo các phương pháp sau:

Nếu người dùng follows link phía bên ngoài (Referer header sẽ bộc lộ trình duyệt tới từ đâu).Trong lịch sử dân tộc duyệt web cùng bookmarks.trong log trên server cùng bất ky proxy hệ thống nào.

Tốt hơn là truyền vào HTTP cookie, chẳng hạn như với PHP thì chúng ta có thể dùng session_regenerate_id(true)

Tạo lại session ID lúc xác thực

Do đã trở nên tạo lại yêu cầu session ID nhưng Mal tạo ra ra đã không còn trùng khớp nữa

chỉ đồng ý tạo session ID sống phía server

Nó là practive tốt để chắc hẳn rằng chỉ server mới được phép tạo session ID.

Đặt Timeout và thay thế sửa chữa session ID cũ

Reset session ID định kỳ sẽ làm bớt rủi vày gây lỗi này.

triển khai logout function đủ mạnh

Hàm logout nên khắc ghi session ID đã không còn hạn.

Xem thêm: Khách Sạn Đường La Văn Cầu Vũng Tàu Đường La Văn Cầu Thu Hút Du Khách

Yêu ước Session bắt đầu khi truy cập từ Referrers xứng đáng ngờ

Xem xét việc login lại trường hợp nó truy vấn từ mối cung cấp khác.

Tổng kết

Vừa rồi là phương pháp thức đảm bảo và và giải pháp thức hoạt động của lỗ hổng Session Fixation, hi vọng sẽ hữu ích cho bạn. Happy coding !

*