2010-10-22 29 views
12

Khi tôi viết mã, tôi luôn cố gắng an toàn. Vấn đề là tôi cần phải biết những gì để tìm và những gì để ngăn chặn.C++: lỗ hổng phổ biến nhất là gì và cách tránh chúng?

Có danh sách nào đó về các lỗ hổng phần mềm phổ biến nhất (C++) và cách tránh chúng không?

Điều gì về phần mềm C++ để sử dụng cụ thể, ví dụ: một phần mềm console linux hoặc một ứng dụng web?

+0

mã không biên dịch là phổ biến nhất một :) – Chubsdad

+3

tôi sẽ phải suy nghĩ bạn mã không biên dịch sẽ là một trong những cách tốt nhất để ngăn ngừa các lỗ hổng nhận được vận chuyển. –

+0

Tôi đồng ý, không thực thi được - không có lỗ hổng bảo mật. Kiểm tra mã tĩnh bằng các ngôn ngữ như C++ là rất khó, nếu có thể. –

Trả lời

5

Trang web này có thể có liên hệ với những gì bạn đang tìm kiếm:

http://www.deitel.com/ResourceCenters/Programming/C/CSecurity/tabid/1549/Default.aspx


Tôi đoán tôi sẽ thêm rằng một trong những vấn đề phổ biến nhất trong C và C++ là tràn bộ đệm:

http://en.wikipedia.org/wiki/Buffer_overflow#Use_of_safe_libraries

cho rằng, chỉ sử dụng chức năng rà soát ranh giới, như strncpy() thay vì strcpy().

+0

Đó là một liên kết thực sự hữu ích – Nahar

+0

Cảm ơn bạn. Tôi đang nghiên cứu những liên kết này. – augustin

+1

'strncpy' là một ý tưởng * xấu * bởi vì nó có thể để lại cho bạn mà không có chuỗi bị chấm dứt null, dẫn đến tràn bộ đệm thậm chí tệ hơn. Các giải pháp thay thế như 'strlcpy',' strcpy_s', và 'memcpy' là tốt hơn. – Gabe

2

Ngoài ra còn có probl ems như 1. Segmentation Fault 2. Memory Leak lỗi 3. Memory Allocation, vv mà có thể được quan tâm của bạn ...

Các vấn đề liên quan