Tìm kiếm bài viết

Lỗ hổng bảo mật Session Fixation

09.11.2020

0/5 (0 Reviews)

Lỗ hổng bảo mật Session Fixation có thật sự nguy hiểm như bạn nghỉ? Có cách nào để phòng chống và khắc phục?

    Lỗ hổng bảo mật Session Fixation có thật sự nguy hiểm như bạn nghỉ? Có cách nào để phòng chống và khắc phục?

    Cách thức hoạt động của Session Fixation

    Việc xử lý session IDs không an toàn có thể khiến người dùng bị tấn công. Websites với tài khoản người dùng thông thường triển khai cơ chế xác thực để đị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à browser sẽ hiều với nhau session ID, vậy nên server sẽ phân biệt được người dùng với mỗi HTTP request.

    Session Fixation

    Nếu như hacker có thể truy cập tới session ID của người dùng khác, họ có thể mạo danh người dùng khác. SESSION FIXATION là một phương thức tấn công mà hacker sử dụng để làm điều đó.

    Trong bài viết này, Mal sẽ 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 vật này thì có thể tìm hiểu trong của mình. Giả sử website của bạn passes session ID trong query string (chắc cũng hiếm người làm vậy :v). Mal chế ra URL có chưa session ID : www.lptech.asia?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 chuột hamster, và cũng giả sử Mal biết được email của bạn, hoặc là đoán được. Hắn gửi cho Vic một email với đường link hấp dẫn về chuột hamster, trỏ tới đường dẫn đã được hắn craft

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

    Tuy nhiên, bây giờ Mal có thể truy cập theo đường dẫn mà hắn đã gửi cho Vic, và hắn cũng có thể truy cập với session của Vic, tức là hắn đã đăng nhập với tài khoản của Vic.

    Bảo vệ Session Fixation

    Nhìn chung thì nó cũng hiếm gặp, dễ khai thác và rất nguy hiểm.

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

    Không truyền Session ID trong biến GET/POST

    Truyền session ID trong query strings, hoặc trong body của POST request chính là vấn đề. Ngoài ra session ID có thể bị rò rỉ theo những cách sau:

    1. Nếu người dùng follows link bên ngoài (Referer header sẽ mô tả trình duyệt tới từ đâu).
    2. Trong lịch sử duyệt web và bookmarks.
    3. trong log trên server và bất ky proxy server nào.

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

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

    Do đã bị tạo lại nên session ID mà Mal tạo ra đã không còn trùng khớp nữa

    chỉ chấp nhận tạo session ID ở phía server

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

    Đặt Timeout và thay thế session ID cũ

    Reset session ID định kỳ sẽ làm giảm rủi do gây lỗi này.

    triển khai logout function đủ mạnh

    Hàm logout nên đánh dấu session ID đã hết hạn.

    Yêu cầu Session mới khi truy cập từ Referrers đáng ngờ

    Xem xét việc login lại nếu nó truy cập từ nguồn khác.

    CÓ THỂ BẠN QUAN TÂM

    Bài Viết Cùng Chuyên Mục

    XEM THÊM
    thumbnail

    Kubernetes bài 6 - Vận hành k8s Day-Two Operations và Quản trị bằng GitOps

    22.05.2026

    Khi cụm Kubernetes của bạn đã được bảo mật cấu hình, tối ưu tài nguyên và thiết lập tự phục hồi, câu hỏi đặt ra là làm sao để duy trì sự ổn định đó trong nhiều năm tiếp theo mà không bị phụ thuộc

    thumbnail

    Kubernetes bài 5 - bảo mật Cloud Native và chuẩn DevSecOps cho K8s

    22.05.2026

    Việc siết chặt an ninh (Hardening) không phải là cấu hình một vài thông số rồi bỏ đó, mà là một tư duy phòng thủ chiều sâu.

    thumbnail

    Kubernetes bài 4 - Tối ưu Resource Auto-Healing và Scale Zero-Downtime

    22.05.2026

    Bài viết này sẽ đi sâu vào các cơ chế ở tầng Kernel giúp hệ thống tự phục hồi, chống lại các đợt tấn công cạn kiệt tài nguyên và cập nhật phiên bản mới mà người dùng không hề hay biết.

    thumbnail

    Kubernetes bài 3 - Bảo mật cấu hình k8s và config Security trên Production

    22.05.2026

    Kubernetes giải quyết bài toán này bằng hai đối tượng chuyên biệt nhưng nếu không hiểu rõ bản chất bảo mật ở tầng dưới, bạn đang tự tay dâng toàn bộ chìa khóa hệ thống cho hacker.

    thumbnail

    Kubernetes bài 2 - Mạng lưới k8s và luồng Traffic ở Packet Level

    22.05.2026

    Pod không chỉ là một container: Rất nhiều người nhầm lẫn Pod 1-1 với Container. Thực chất, Pod là đơn vị triển khai nhỏ nhất, có thể chứa một hoặc nhiều container

    Mục lục bài viết