* eval() 및 create_function()
* 1. eval()
* 1. eval() 함수는 PHP 코드에 따라 문자열을 계산합니다.
* 2. 문자열은 합법적인 PHP 코드여야 하며, 세미콜론으로 끝나야 합니다
* 3. 코드 문자열에서 return 문을 호출하지 않으면 NULL이 반환됩니다
* 4. 코드에 구문 분석 오류가 있으면 eval() 함수는 false를 반환합니다
* 5. 이 함수는 향후 계산을 위해 데이터베이스 텍스트 필드에 코드를 저장하는 데 유용합니다
* 2. create_function('parameter','function body code'): 익명 함수 만들기
//다음 두 문은 정확히 다음을 갖습니다. 같은 함수
eval('echo 4+5;'); //输出9 echo eval('return 4+5;'); //返回9并显示在屏幕上
//위 두 문장은 같은 함수라도 반환 값이 다릅니다
//그래서 eval() 반환 값을 참조하려면 문장에서 return을 사용해야 합니다. string
var_dump(eval('echo 4+5;')); //返回 NULL var_dump(eval('return 4+5;')); //返回 9
//eval() 주입 공격 데모
isset($_GET['p']) ? eval($_GET['p']) : null;
//이제 URL 뒤에 ?p=phpinfo(); 또는 기타 합법적인 PHP 문을 추가하면 바로 실행되어 주입이 성공합니다
//당신 악의적인 공격을 위해 광고, 점프 주소 등을 추가할 수 있습니다. 목적
//create_functoin()을 사용하여 익명 함수를 생성하세요
//이 함수는 더 이상 사용되지 않기 때문에 일부 편집자는 경고를 표시하며 쓸모가 없습니다. 더 말해봐
//이런 기능은 이전에도 이 세상에 있었다는 것만 알면 충분해
$func1 = create_function('$a,$b', 'return ($a+$b);'); echo $func1(10,20);
위 내용은 PHP의 eval() 및 create_function()의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!