설명
비밀번호, 클라이언트 시크릿, API 키를 소스 코드에 직접 저장하면 코드 유출 시 즉시 악용될 수 있습니다.
잠재적 영향
서비스 계정 탈취, API 오용, 권한 상승이 가능합니다.
해결 방법
비밀정보는 Secret Manager 등에서 보호하고 필요에 따라 런타임 환경 변수로 공급하세요. 노출된 값은 폐기·재발급하고 사용하는 애플리케이션에도 새 값을 적용하세요.
예시
아래 코드는 이미 공급된 환경 변수를 읽습니다. 필수 값이 없거나 비어 있으면 시작을 중단하도록 검증하고, 환경 변수나 설정 덤프에 접근할 수 있는 주체를 제한하세요.
변경 전
php
<?php
$client_secret = "ABigLongSecret";
변경 후
php
<?php
$client_secret = getenv('CLIENT_SECRET');
설명:
- 변경 전: 비밀번호, 클라이언트 시크릿 또는 토큰이 PHP 소스에 하드코딩되어 있습니다.
- 변경 후: 비밀정보는 Secret Manager 등에서 보호하고 필요에 따라 런타임 환경 변수로 공급하세요. 노출된 값은 폐기·재발급하고 사용하는 애플리케이션에도 새 값을 적용하세요.