신뢰할 수 없는 데이터에 unserialize()
왜 위험한가요
unserialize()는 어떤 객체든 만들 수 있어서, 공격자가 기존 클래스들을 연결해(가젯 체인) 파일을 지우거나 코드를 실행할 수 있습니다. JSON은 단순한 데이터만 만듭니다.
$prefs = unserialize($_COOKIE['prefs']);
$prefs = json_decode($_COOKIE['prefs'] ?? '{}', true) ?: [];
해결 방법
json_decode()로 바꾸세요. 꼭 써야 하면 ['allowed_classes' => false] 옵션을 넣으세요.
내 코드 검사하기
내 코드 검사하기 →
파일을 붙여넣으면 이 규칙에 걸리는 줄을 모두 찾아드립니다.