포함과 관련하여 중요한 문제는 소스 코드 노출입니다. . 이 문제의 주요 원인은 다음과 같은 일반적인 상황입니다.
l 포함된 파일에 .inc 확장자 사용
l 포함된 파일은 웹사이트의 기본 디렉터리에 저장됩니다
l Apache에서 .inc 파일 형식을 설정하지 않았습니다
l Apache의 기본 파일 형식은 text/plain
위의 상황에서는 URL을 통해 포함된 파일에 직접 액세스하게 됩니다. 더 나쁜 것은 일반 텍스트로 처리되고 PHP에서 구문 분석되지 않으므로 소스 코드가 사용자 브라우저에 표시된다는 것입니다(그림 5-1 참조).
그림 5-1. 서버 내 소스코드 노출
이런 상황을 피하는 것은 쉽습니다. 응용 프로그램을 재구성하고 포함된 모든 파일을 웹 사이트의 기본 디렉터리 외부에 배치할 수만 있습니다. 가장 좋은 방법은 공개적으로 게시해야 하는 파일만 웹 사이트의 기본 디렉터리에 배치하는 것입니다.
이상하게 들릴 수도 있지만 소스 코드가 노출될 수 있는 상황은 많습니다. 실수로 작성된 Apache 구성 파일(다음 시작 시까지 발견되지 않음), 경험이 없는 시스템 관리자가 Apache를 업그레이드했지만 PHP 지원 추가를 잊어버린 경우, 소스 코드가 노출되는 기타 여러 상황을 보았습니다.
웹사이트의 기본 디렉토리 외부에 가능한 한 많은 PHP 코드를 유지함으로써 소스 코드 노출을 방지할 수 있습니다. 최소한 모든 포함 파일을 사이트의 기본 디렉터리 외부에 보관하는 것이 가장 좋습니다.
일부 방법은 소스코드 노출 가능성을 제한할 수는 있지만 근본적으로 문제를 해결할 수는 없습니다. 이러한 방법에는 PHP 파일과 동일하게 .inc 파일을 처리하도록 Apache를 구성하는 것, .php 접미사가 있는 포함 파일을 사용하는 것, .inc 파일에 대한 직접 요청을 수락하지 않도록 Apache를 구성하는 것 등이 있습니다.
아아앙
이러한 방법에는 장점이 있지만 사이트의 홈 디렉터리 외부에 포함 파일을 배치하는 것만큼 안전한 방법은 없습니다. 애플리케이션을 보호하기 위해 위의 방법에 의존하지 마십시오. 최대한 심층적인 방어 수단으로 사용하십시오.
위 내용은 PHP 보안 소스코드 노출 내용이며, 더 많은 관련 내용은 PHP 중국어 홈페이지(www. php.cn)!