Eval é uma função usada na programação . Está presente em várias linguagens interpretadas e permite executar um comando a partir de uma string de caracteres (ou String) gerada pelo próprio programa em execução.
Aqui está um exemplo em php, essas duas linhas são absolutamente equivalentes:
$c = 1 + $b; echo $c; eval('$c = 1 + $b; echo $c;');Uma avaliação por meio de uma string de caracteres durante a execução torna mais fácil:
Uma vez que um programa usando eval não pode ser completamente compilado (você ainda pode precisar de algo em um eval , muitas das otimizações usuais são muito complicadas), esses programas são inerentemente mais lentos do que um programa compilado. Isso considerando que utilizamos eval sem a necessidade, pois seus atalhos de escrita permitem uma programação mais rápida.
Apesar do poder desta função e de suas possibilidades, eval não é amplamente utilizado. E isso porque seu uso torna o código mais complexo de entender e em parte porque essa função é considerada "supérflua" e "suja".
Eval é um verdadeiro problema de segurança em php. Especialmente para programas que têm acesso a dados confidenciais. É altamente recomendável verificar o máximo possível a forma de geração da cadeia que será executada.
Um exemplo de ataque eval em php :
$input = $_POST['action']; eval($input) código htmlsó permite "Conexão ()" "Desconexão ()" e "Ler ()"
Ataquecrie sua própria página html que insira outro valor como " HidingAccess () "
Proteçãoverifique antes de executar a avaliação se $ input é um dos valores permitidos.
Algumas dicas para evitar problemas com avaliação: