Table of Contents
Sự tràn ngập các dữ liệu là một sự tổn thương an ninh phổ biến trong chương trình C và C++. Chúng xảy ra khi dữ liệu vượt quá kích cỡ bộ đệm phân cấp, có khả năng dẫn đến tham nhũng dữ liệu hoặc khai thác dữ liệu độc hại. Hiểu được cách tính toán và quản lý sự tràn ngập bộ đệm là thiết yếu để viết ra các mã an toàn.
Hiểu được sự tràn ngập
Một bộ đệm chồng lên xảy ra khi một chương trình ghi dữ liệu nhiều hơn bộ đệm có thể giữ. Việc này có thể ghi đè lên bộ nhớ bên cạnh, gây ra hành vi hay sự vi phạm bảo mật không thể đoán trước. Kích cỡ bộ đệm đúng và nhập hợp lệ là bước then chốt để ngăn chặn sự tràn vào.
Chiến thuật cho việc tính kích cỡ bộ đệm
Tính toán chính xác kích cỡ bộ đệm bao hàm việc hiểu chiều dài nhập tối đa và cách sắp xếp bộ nhớ đầy đủ. Dùng hàm như [FLT: 0] kích cỡ [FLT: 1] để xác định khả năng đệm và tránh kích cỡ bộ nhớ cứng. Việc định vị trí cũng có thể thích ứng kích cỡ bộ đệm dựa trên dữ liệu nhập.
Kỹ thuật phòng ngừa
Ngăn chặn sự tràn bộ đệm đòi hỏi nhiều chiến lược:
- Hợp lệ hoá:[FLT: 1] Kiểm tra độ dài nhập trước khi sao chép dữ liệu.
- Dùng chức năng an toàn:) Prefer chức năng như ) ) hoặc [FLT:] in hơn những người không an toàn.
- Giới hạn từ chối kiểm tra:[FLT: 1] luôn luôn xác minh giới hạn đệm trong các thao tác dữ liệu.
- Bảo vệ biên dịch:[FLT: 1) Bật các hộp và các tính năng bảo mật khác.