2.5. 보안적인 프로그램 타입

많은 여러가지 타입의 프로그램들이 보안적인 프로그램 (이 책에 정의된 바와 같이) 일 필요가 있을 수 있는데 약간의 공통된 타입은 다음과 같다:

이 책은 이러한 여러가지 타입의 프로그램들의 문제들을 하나의 집합으로 병합한다. 이 방법의 단점은 여기서 확인된 문제들중 일부가 모든 프로그램 타입에 적용되지 않는다는 것인데 특히, setuid/setgid 프로그램은 많은 예기치 않은 입력들을 갖으며 이 책의 지침들중 몇몇만이 이에 적용된다. 그러나 각각의 프로그램이 이러한 경계들을 가로지를 수도 있고 (예, CGI 스크립트가 setuid/setgid 일 수도 있으며 또한 동일한 효과를 갖는 방식으로 설정될 수도 있다) 어떤 프로그램들은 다른 타입의 프로그램으로 고려될 수 있는 몇몇 실행 파일로 나누어질 수도 있기 때문에 분명한 것은 아니다. 이러한 프로그램 타입 모두를 한꺼번에 고려하는데 있어 장점은 프로그램에 부적절한 범주를 적용하려 하지 않고 모든 문제를 고려할 수 있다는 것이다. 추후 볼 것이지만 원리들의 많은 부분이 안전하게 될 필요가 있는 모든 프로그램에 적용된다.

이 책은 C++, 펄, PHP, 파이썬, Ada95 와 자바와 같은 다른 언어들에 대해 약간 언급하며 주로 C 로 작성된 프로그램에 대해 다룬다. 이는 C 가 유닉스 계열 시스템 (CGI 스크립트이외에 펄, PHP, 파이썬을 을 사용하는 경향이 있다) 에서 보안적인 프로그램을 구현하는 가장 보편적인 언어이고 대부분의 다른 언어들의 구현이 C 라이브러리를 호출하기 때문이다. 그러나 C 가 보안 목적에 맞는 가장 최선의 언어라는 것을 의미하지는 않으며 이 책에 기술된 원리들중 대부분은 사용된 프로그래밍 언어에 상관없이 적용된다.