평가가 악이 아닌 경우는 언제입니까?
PHP의 평가 기능이 최후의 수단이라는 널리 퍼진 인식에도 불구하고 여전히 특정 시나리오에서는 어느 정도 가치를 유지합니다. PHP 5.3의 LSB 및 클로저를 고려하여 eval이 최선이거나 유일한 옵션으로 남아 있는 가능한 사례가 있는지 살펴보겠습니다.
답변:
eval이 계속되는 동안 일반적으로 피해야 하지만 다음 시나리오에서는 정당화될 수 있습니다.
-
숫자 표현식 평가: 숫자 계산 또는 기타 "안전한" PHP 하위 집합을 실행하면 때때로 eval의 이점을 얻을 수 있습니다.
-
단위 테스트: 표준 테스트 방법으로는 쉽게 달성할 수 없는 특수한 요구 사항이 포함된 테스트 사례를 만듭니다.
-
대화형 PHP "Shell": 빌드 사용자 제공 코드 조각을 받아들이고 실행하는 명령줄 인터페이스.
-
신뢰할 수 있는 var_export의 역직렬화: 신뢰할 수 있는 소스에서 얻은 직렬화된 문자열에서 데이터 구조 복구
-
템플릿 언어: 사용자 정의 템플릿 엔진에서 eval을 활용하여 코드 조각을 동적으로 생성하고 실행합니다.
-
백도어 생성: 안타깝게도 eval은 악의적인 공격자가 다음 목적을 위한 백도어를 설정하는 데 사용될 수 있습니다. 무단 액세스.
-
PHP <5.3과의 호환성: 이전 PHP 버전을 대상으로 하는 프로젝트의 경우 최신 기능이 없는 것을 보완하기 위해 eval이 필요할 수 있습니다.
-
구문 검사(잠재적으로 안전하지 않음): 완전히 안전하지는 않지만 eval을 사용하여 제공된 코드의 구문을 검사할 수 있습니다.
위 내용은 PHP에서 eval이 Evil이 아닌 경우는 언제입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!