평가가 악이 아닌 경우는 언제입니까?
PHP의 평가 기능은 종종 권장되지 않지만 PHP 5.3에서의 유용성은 논쟁의 여지가 있습니다. . LSB 및 클로저의 출현에도 불구하고 eval이 여전히 선호되는 몇 가지 사용 사례는 다음과 같습니다.
안전한 표현식 평가:
Eval은 숫자 또는 숫자를 평가하는 데 사용할 수 있습니다. 보안 위험을 초래하지 않고 간단한 수학 표현식과 같은 PHP 코드의 기타 특정 하위 집합.
유닛 테스트:
Eval은 특정 시나리오나 특수 사례를 테스트하기 위해 코드 조각을 동적으로 생성하여 단위 테스트를 단순화할 수 있습니다.
대화형 PHP 셸:
다음과 같은 대화형 PHP 환경에 적합 셸 또는 콘솔인 eval을 사용하면 사용자가 즉시 임의의 코드를 실행할 수 있습니다.
Deserializing Trusted var_export 데이터:
Eval은 특히 데이터가 신뢰할 수 있는 것으로 알려진 경우 var_export 함수를 사용하여 내보낸 PHP 데이터를 역직렬화하는 데 필요합니다.
일부 템플릿 언어:
Smarty와 같은 특정 템플릿 언어는 웹에서 코드 조각을 동적으로 실행하고 표시하기 위해 eval을 사용합니다. 애플리케이션.
관리자 또는 해커를 위한 백도어:
권장되지는 않지만 eval을 사용하면 웹 애플리케이션에 백도어나 원격 액세스 지점을 생성하여 관리자나 해커가 일반 인증을 우회할 수 있습니다. 메커니즘.
PHP 5.3 이전 버전과의 호환성:
이전 PHP 버전용으로 작성된 코드는 여전히 이전 버전과의 호환성을 제공하기 위해 특정 기능에 대해 eval을 사용해야 합니다.
구문 검사(주의 사항 권장):
잠재적으로 안전하지 않지만 기본 구문 검사에 eval을 사용할 수 있습니다. 코드를 실행하고 런타임 오류를 캡처하려고 시도합니다. 그러나 이 접근 방식은 완전한 구문 유효성 검사를 보장하지 않는다는 점에 유의하는 것이 중요합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3