로그인

검색

C/C++
2013.07.28 02:42

Buffer Overrun

MoA
조회 수 3512 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
How does one patch or prevent a BufferOverRun??

From the start - don't stuff more bytes into a buffer than it can hold.

More specifically (this applies to C/C++; a lot of these problems don't occur in other languages):

  • If writing code in C++, use the string class rather than char[] for strings whenever performance isn't a priority.
  • Never use gets() -- always use fgets()
  • Never use sprintf(), use snprintf() instead
  • Never use strcpy(), use strncpy() instead
  • Never use strcat(), use strncat() instead
  • Never use printf (foo) to print a raw string; always use printf ("%s", foo). Especially important if foo is a string generated by a user. One class of attacks is to embed nasty formatting controls (like %n) in a string, trying to cause a buffer overflow. (See FormatStringVulnerability?)
  • If you have to use char[] rather than string, keep track of your buffer lengths.
  • Never assume a 4K or other size buffer is "long enough"... chances are it won't be.
  • Use dynamic char buffers, and DoubleAfterFull to maintain good performance.

The best way to avoid buffer overruns and the related list overruns and list jams is to make a religion of testing your boundary conditions, testing your boundary assumptions and, most important, any programmer whose code allows them should be subjected to the most severe ridicule and humiliation the team's culture will allow. Dunce caps are easy to make and very effective.


위키링크 추가 http://en.wikipedia.org/wiki/Buffer_overflow

?

  1. Programming 게시판 관련

    Date2014.11.01 CategoryTool/etc ByMoA Views15452
    read more
  2. 윈도우 프로그램의 종료 메시지 순서

    Date2012.08.03 CategoryAPI/MFC ByNaya Views2975
    Read More
  3. What to use instead of “addPreferencesFromResource” in a PreferenceActivity?

    Date2013.06.13 CategoryJAVA/Android ByMoA Views2977
    Read More
  4. Base64 decoder (binary file로 저장)

    Date2012.11.15 CategorySite ByNaya Views2979
    Read More
  5. Google의 C++ 라이브러리

    Date2012.08.02 CategoryLibrary ByNaya Views2988
    Read More
  6. 앱 디자인의 발견 - 메모 서비스를 생각하다

    Date2013.08.17 CategoryTool/etc ByMoA Views2991
    Read More
  7. 이클립스에서 ADT 설치시 에러 해결

    Date2013.03.09 CategoryJAVA/Android ByMoA Views2997
    Read More
  8. Google의 C++ 라이브러리

    Date2013.07.28 CategoryC/C++ ByMoA Views2997
    Read More
  9. Math Library

    Date2012.08.02 CategoryLibrary ByNaya Views3016
    Read More
  10. 예외 처리 가이드 (Slide)

    Date2013.07.28 CategoryTool/etc ByMoA Views3016
    Read More
  11. Top 3 most used Pytorch Ecosystem Libraries you should Know about

    Date2023.08.02 CategoryDeeplearning ByOBG Views3024
    Read More
  12. AWS VPC 피어링

    Date2022.11.03 CategoryTool/etc ByOBG Views3035
    Read More
  13. 텍스트 에디터 Sublime Text 2

    Date2012.03.30 CategoryTool/etc By너울 Views3036
    Read More
  14. 프로그램 배포용으로 만드는 과정

    Date2012.01.20 CategoryAPI/MFC By너울 Views3041
    Read More
  15. 메트로 스타일 앱개발을 위한 8가지 팁

    Date2012.05.14 CategoryAPI/MFC By너울 Views3044
    Read More
  16. Great summary cheat sheet (OpenCV)

    Date2013.01.04 CategorySite ByMoA Views3048
    Read More
  17. Office 스타일의 리본바 만드는 법

    Date2012.01.12 CategoryAPI/MFC By너울 Views3053
    Read More
  18. memset vs for 초기화. 속도 차이가 얼마나 날까?

    Date2013.07.28 CategoryC/C++ ByMoA Views3054
    Read More
  19. UpdateData(TRUE) or UpdateData(FALSE) 구분

    Date2013.07.28 CategoryAPI/MFC ByMoA Views3058
    Read More
  20. SciPy and NumPy

    Date2013.12.23 CategoryPython ByMoA Views3061
    Read More
  21. Embedding Python in C/C++

    Date2013.12.23 CategoryPython ByMoA Views3064
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 15 Next
/ 15