Anuncios

Bienvenidos sean a este post, hoy hablaremos sobre un metodo del objeto String.

Anuncios

Este metodo nos permite evaluar o ejecutar el argumento que le pasemos, si el argumento es una expresion el metodo la evalua, en cambio si es una o mas instrucciones este metodo procede a ejecutarla, veamos como es su sintaxis:

eval(argumento);
Anuncios

Para entenderlo un poco mejor vamos a realizar un pequeño ejemplo:

<html>
<head>
<script language="javascript">
<!--
document.title="Ejemplos de String()";
function crearCuerpo()
{
	var t1 = 10;
	var t2 = 20;
	var texto = "t1 + t2";
	var total = eval(texto);
	document.write("El valor es: " + total);
}
//-->
</script>
</head>
<body>
<script language="javascript">crearCuerpo()</script>
</body>
</html>
Anuncios
Anuncios

En este ejemplo bien simple tenemos una funcion que posee dos variables con valores, luego tenemos una variable llamada texto donde almacenaremos una cadena donde sumaremos las variables anteriores, lo siguiente sera una variable donde almacenaremos el resultado de eval sobre la variable texto, lo siguiente sera escribir en el documento del valor almacenado en total, por ultimo en el body del html llamaremos a la funcion antes comentada, veamos como es su salida

Anuncios

Como pueden ver ejecuto la operacion a pesar de una cadena de texto, vamos a tomar el ejemplo anterior y vamos a modificarlo de la siguiente manera:

<html>
<head>
<script language="javascript">
<!--
document.title="Ejemplos de String()";
function crearCuerpo()
{
	var texto = "alert('Prueba')";
	var total = eval(texto);
}
//-->
</script>
</head>
<body>
<script language="javascript">crearCuerpo()</script>
</body>
</html>
Anuncios

En comparacion con el codigo anterior a la variable texto le pasamos una instruccion de tipo alert para luego utilizarla con eval, el resto es similar a lo comentado anteriormente, veamos que sucede

Anuncios

Como pueden ver se ejecuto perfectamente nuestra instruccion, por esta razon se debe evitar el uso de eval, porque al permitir la ejecucion de instrucciones puede ocasionar que se inyecte un codigo malicioso en el servidor/cliente y este es un punto de vulnerabilidad muy grave, pero como observaron se encuentran habilitadas en los navegadores, asi tengan cuidado con este metodo.

Anuncios
Nota:
Este metodo trabaja de la misma forma para Math, Array y Date.
Anuncios

En resumen, hoy hemos visto a eval, que es, como trabaja, su sintaxis, un ejemplo de como interpreta con una expresion, luego hemos mencionado una vulnerabilidad importante por medio de una instruccion, recuerden no utilizar esto debido a lo comentado anteriormente, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50