요청 데이터에 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()는 공격자가 변수를 덮어쓸 수 있게 합니다.
내 코드 검사하기
내 코드 검사하기 →
파일을 붙여넣으면 이 규칙에 걸리는 줄을 모두 찾아드립니다.