phpsafe 𝕏 GitHub
공식 CA 421DTkQ3TSG3n7F9SkNZj9NxvdFGbypwkctPd2uupump 이 주소만 공식 주소입니다.

요청 데이터에 extract()

위험도: 높음 CWE-621 OWASP A03:2021 Injection rule: extract

왜 위험한가요

extract()는 요청의 모든 필드를 변수로 만들기 때문에, 공격자가 폼에 필드 하나만 추가해도 $is_admin 같은 변수를 덮어쓸 수 있습니다.

✕ 취약한 코드
extract($_POST);
if ($is_admin) {
    show_admin_panel();
}
✓ 안전한 코드
$name  = trim((string)($_POST['name'] ?? ''));
$email = filter_var($_POST['email'] ?? '', FILTER_VALIDATE_EMAIL);

해결 방법

필요한 값만 하나씩 꺼내 쓰세요. extract()는 공격자가 변수를 덮어쓸 수 있게 합니다.

내 코드 검사하기

파일을 붙여넣으면 이 규칙에 걸리는 줄을 모두 찾아드립니다.

내 코드 검사하기 →