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

preg_replace의 /e 수정자

위험도: 치명적 CWE-95 OWASP A03:2021 Injection rule: preg_e

왜 위험한가요

/e 수정자는 치환 문자열을 PHP 코드로 실행합니다. PHP 7에서 삭제되었기 때문에 아직 쓰고 있다면 오래된 서버에서는 위험하고 최신 서버에서는 동작하지 않습니다.

✕ 취약한 코드
$out = preg_replace('/(\w+)/e', 'strtoupper("$1")', $text);
✓ 안전한 코드
$out = preg_replace_callback('/(\w+)/', fn($m) => strtoupper($m[1]), $text);

해결 방법

/e는 코드를 실행합니다. preg_replace_callback()을 쓰세요.

내 코드 검사하기

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

내 코드 검사하기 →