Autor
|
Tema: [?]Para que sirve eval()? (Leído 9,358 veces)
|
braulio--
Wiki
Desconectado
Mensajes: 896
Imagen recursiva
|
Pues esa es mi duda, mas que util la verdad es que me parece una vulnerabilidad para un programador descuidado. Porque ejecutar una sentencia desde eval y no desde el código normal? Gracias
|
|
|
En línea
|
|
|
|
Azielito
no es
Colaborador
Desconectado
Mensajes: 9.188
>.<
|
por que con eval() podes generar codigo PHP dinamicamente generacion de arrays, funciones, cosas mas dinamicas que dinamicas Le metes un filtro para que solo pasen cosas locales, o sea, nunca recuperar variables ingresadas por el usuario, o evitarlo lo mas que puedas
|
|
|
En línea
|
|
|
|
Anibal784
Desconectado
Mensajes: 762
Yo no la vote, pero me la tengo que aguantar igual
|
eval() es la piedra fundamental de cualquier lenguaje interpretado, todo lo que hace un lenguaje interpretado es llamar a eval(), lisp hace eval(), python hace eval(), ruby hace eval(), perl hace eval() y PHP hace eval(), lee la línea y se la pasa a eval.
No hace mucho, recuerdo haber leído fundamentos de la programación en perl, en la cual hacían un requiere con la función eval, los pasos eran más o menos los siguiente: tomaban el archivo con código perl lo abrían se lo pasaban a eval() y ya tenía disponible todas las funciones de ese módulo, PHP nace de perl y por lo tanto no dudo que require/include no hagan más o meno eso, y sin eval no existiría ni include ni require, o sea, sería aún más chicloso el código PHP.
|
|
|
En línea
|
El que llega sin que lo llamen, se va sin que lo echen. Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.
|
|
|
HardieVon
Desconectado
Mensajes: 181
Programming HardCore
|
eval() es la piedra fundamental de cualquier lenguaje interpretado, todo lo que hace un lenguaje interpretado es llamar a eval(), lisp hace eval(), python hace eval(), ruby hace eval(), perl hace eval() y PHP hace eval(), lee la línea y se la pasa a eval.
No hace mucho, recuerdo haber leído fundamentos de la programación en perl, en la cual hacían un requiere con la función eval, los pasos eran más o menos los siguiente: tomaban el archivo con código perl lo abrían se lo pasaban a eval() y ya tenía disponible todas las funciones de ese módulo, PHP nace de perl y por lo tanto no dudo que require/include no hagan más o meno eso, y sin eval no existiría ni include ni require, o sea, sería aún más chicloso el código PHP.
man y tienes algun ejemplo en php que el eval sea impresindible? por que yo eh hecho sistemas muy robustos y la verdad no eh ocupado mucho el eval, lo eh sabido suplementar. algun ejemplo que no sea de criptologia
|
|
|
En línea
|
|
|
|
^Cloud^
Desconectado
Mensajes: 64
La tierra es plana.
|
Que yo sepa eval evalua una cadena y si en ella encuentra código ejecutable (en este caso PHP) lo ejecuta.
Es muy últil para hacer cosas como templates (minis... y normalmente se realiza en el buffer de salida de php) o tener formularios donde incluir código php en textareas... por ejemplo.
Un saludo,
|
|
|
En línea
|
Ahora resulta que imagino mi pasado y llevo en esta clínica cuarenta años. Nunca jamás he pisado la calle y el electroshock ha sido mi padre
|
|
|
braulio--
Wiki
Desconectado
Mensajes: 896
Imagen recursiva
|
He leído una situación útil. Imagina que has sacado una fórmula matemática de una base de datos y la has guardado en la variable $formula. Para obtener el resultado no podrías hacer $resultado = $formula;
Porque resultado también contendría la formula. Pero si puedes hacer esto : eval("$resultado = ".$formula);
Y se tomaría $formula como una expresión matemática y no como una string. Gracias por responder
|
|
|
En línea
|
|
|
|
Anibal784
Desconectado
Mensajes: 762
Yo no la vote, pero me la tengo que aguantar igual
|
@HardieVon
que tu no lo hayas usado no quiere decir que no exista y que no tenga utilidad, no se como estará implementada create_function, pero de lo que estoy seguro es que hace uso de la función eval(). Míralo como asm y C, en C puedes usar asm cuando quieras, sin embargo existen muchos sistemas y muy robustos que no tienen una línea de asm.
|
|
|
En línea
|
El que llega sin que lo llamen, se va sin que lo echen. Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.
|
|
|
HardieVon
Desconectado
Mensajes: 181
Programming HardCore
|
@HardieVon
que tu no lo hayas usado no quiere decir que no exista y que no tenga utilidad, no se como estará implementada create_function, pero de lo que estoy seguro es que hace uso de la función eval(). Míralo como asm y C, en C puedes usar asm cuando quieras, sin embargo existen muchos sistemas y muy robustos que no tienen una línea de asm. Fijate lo que dices men por que todo lo que escribiste es mentira, citame donde puse que no lo eh usado y donde dije que no existe?. braulio - es muy bueno tu ejemplo. PD: me apendeje. ando estresado, ni mas ni menos que por cierto aqui en este post. demuestro un excelente uso. http://foro.elhacker.net/php/iquestcomo_hago_include_a_una_web_externa-t259360.0.html
|
|
« Última modificación: 27 Junio 2009, 03:25 am por HardieVon »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
donde puedo en contra el encristador eval unescape
Seguridad
|
manu70
|
1
|
3,611
|
26 Agosto 2011, 16:00 pm
por Randomize
|
|
|
Enlazando propiedades con Eval en vez de Bind
.NET (C#, VB.NET, ASP)
|
DanteInfernum
|
0
|
1,644
|
27 Febrero 2014, 18:26 pm
por DanteInfernum
|
|
|
javascript seguridad eval
Desarrollo Web
|
matake
|
3
|
3,027
|
25 Julio 2016, 03:07 am
por engel lex
|
|
|
equivalente a eval()? | javascript
Desarrollo Web
|
Drakaris
|
3
|
2,739
|
25 Enero 2021, 00:17 am
por Drakaris
|
|