설명
운영 환경에서 PHP 오류, 스택 정보, DB 오류 메시지를 사용자에게 노출하면 내부 구조와 민감 정보가 드러날 수 있습니다.
잠재적 영향
경로, 쿼리, 계정명, 내부 구현 정보가 노출되어 후속 공격에 활용될 수 있습니다.
해결 방법
운영 환경에서는 display_errors를 비활성화하고, 상세 오류는 서버 로그에만 기록합니다.
예시
변경 전
php
<?php
ini_set('display_errors', '1');
echo mysqli_error($db);
변경 후
php
<?php
ini_set('display_errors', '0');
error_log($e->getMessage());
설명:
- 변경 전: PHP 디버그 또는 오류 세부 정보가 사용자에게 노출됩니다.
- 변경 후: 운영 환경에서는
display_errors를 비활성화하고, 상세 오류는 서버 로그에만 기록합니다.
로그 접근을 제한하고 자격 증명 같은 비밀 값은 제외하거나 마스킹하세요.