Título: Seguridad en javascript Publicado por: Hagoromo en 4 Diciembre 2008, 14:45 pm Buenas,
cómo puedo hacer segura una función en Js, la cual hace una llamada con el método XMLHttpRequest? El problema es que el usuario puede ver el código fuente y ver cómo se hace esa llamada a la función, por ejemplo, el borrado de un registro en la base de datos. Se podría "embeber" o algo así en código php para que no se pueda ver la llamada? Ejemplo de la función en javascript: function actBDD(str) { var r = new XMLHttpRequest(); r.open("GET", "xec.php?str=" + str, false); r.send(null); return r.responseText; } Y aquí el script xec.php para la conexión vía socket con la BDD: <?php function acceso($str) { $sck = fsockopen .... .... } $str = $_GET['str']; ... ?> Gracias de antemano y espero haberme explicado con claridad ;-) Título: Re: Seguridad en javascript Publicado por: дٳŦ٭ en 4 Diciembre 2008, 16:42 pm Pues mira, yo lo que haria es revisar el referer, si viene desde la pagina lo dejo pasar, sino lo bloqueo. La otra es que envies cifrado el id o pon una sesión y asigna permisos para dicha accion (pa que solo ese usuario pueda borrar ese id).
Saludos Título: Re: Seguridad en javascript Publicado por: Hagoromo en 4 Diciembre 2008, 20:04 pm Gracias дٳŦ, le meteré esos dos filtros.
Título: Re: Seguridad en javascript Publicado por: SaXo en 5 Diciembre 2008, 00:16 am No tiene mucho sentido lo que dices. Actualmente existen muchas api ajax que hacen eso mismo. Puedes mirarte la pagina de jquery y ver su codigo fuente siempre que te apetezca.
Encapsular una funcionalidad js en una funcion de php no suele ser la primera opcion. Puedes crearte una capa en php que realice callbacks a piezas en javascript como segunda opcion, o simplemente usar jquery para realizar tus callbacks a los elementos que realizan la logica de negocio. Parece que hago publicidad de jquery, pero desde que la use para solucionar "un problema" me parece una herramienta muy util. Título: Re: Seguridad en javascript Publicado por: дٳŦ٭ en 5 Diciembre 2008, 02:07 am No tiene mucho sentido lo que dices. Actualmente existen muchas api ajax que hacen eso mismo. Puedes mirarte la pagina de jquery y ver su codigo fuente siempre que te apetezca. Encapsular una funcionalidad js en una funcion de php no suele ser la primera opcion. Puedes crearte una capa en php que realice callbacks a piezas en javascript como segunda opcion, o simplemente usar jquery para realizar tus callbacks a los elementos que realizan la logica de negocio. Parece que hago publicidad de jquery, pero desde que la use para solucionar "un problema" me parece una herramienta muy util. Pues si.. pero es mejor aprender desde 0. Título: Re: Seguridad en javascript Publicado por: Hagoromo en 5 Diciembre 2008, 21:52 pm No tiene mucho sentido lo que dices. Actualmente existen muchas api ajax que hacen eso mismo. Puedes mirarte la pagina de jquery y ver su codigo fuente siempre que te apetezca. Encapsular una funcionalidad js en una funcion de php no suele ser la primera opcion. Puedes crearte una capa en php que realice callbacks a piezas en javascript como segunda opcion, o simplemente usar jquery para realizar tus callbacks a los elementos que realizan la logica de negocio. Perdón, pero no me he enterado de nada :P Podrías darme algún enlace con ejemplos? Gracias y saludotes! Título: Re: Seguridad en javascript Publicado por: P[i] en 5 Diciembre 2008, 22:37 pm Consejos:
1º pasa de javascript y escribe solo html que envie datos a un php. Una vez codificado esto testealo a prueba de cualquier vulneridad que pueda explotar el usuario (Sql,XSS Directo o Indirecto...) 2º ya puedes implementarlo con javasript da igual que el usuario pueda ver o no el codigo pues tu php (lo unico vulnerable) ya esta totalmente inmunizado. Saludos. Título: Re: Seguridad en javascript Publicado por: Hagoromo en 6 Diciembre 2008, 00:10 am Perdonad si os parezco tontodelnabbo, pero estoy empezando
con PHP ... tengo una página con una tabla llena de registros de la BDD, y en la página hay un botón para eliminar el registro seleccionado, tiene que haber javascript para realizar la acción (que quiero sea dinámica). Por lo tanto, ese código javascript siempre será visible en el lado cliente, y alguien malintencionado verá cómo hace la llamada a la función php para borrar el registro de la BDD: el código PHP no lo verá, pero sí los parámetros que pasamos con js hacia el PHP ... La pregunta es si esa persona malintencionada puede hacer algo con esos parámetros, y reproducirlo en su máquina para atacar mi BDD (puede llegar a saber la ip del servidor BDD). Se podría hacer una página dinámica donde el usuario interactue con ella, como el ejemplo anterior, con sólo PHP + HTML sin Js? No sé si me he explicado bien, en caso contrario perdonadme :-) He mirado por encima la librería JQUERY y esta muy bien, pero prefiero aprender lo básico antes de complicarme más la vida... Gracias de antemano! Título: Re: Seguridad en javascript Publicado por: P[i] en 6 Diciembre 2008, 12:59 pm Te esplico un poco mas en detalle (voy a poner tu ejemplo pero espero que
quede claro en general) Antes de existir javascript (mas bien antes que existir ajax) la gente se apañaba muy bien simplemente con html. Todo lo que hagas en js se puede hacer con html (es mas facil para el usuario con js pero poder se puede) Lo primero es tener claro lo que se quiere. Ejemplo (espero que entendera bien lo que quieres hacer): Queremos una pagina que muestre una tabla con filas de valores y que el usuario pueda eliminar las filas que quiera. 1º Creamos el caso mas sencillo en HTML Código: <html> Ahora creamos en php el codigo que recibe los parametros este codigo no deberia cambiar, da igual que le enviemos los datos por un formulario en html o por ajax. Código: <?php Como ves tienes trabajo en lo que es php Una vez echo el codigo en php solo nos queda volver hacer el html pero esta vez usando javascript un ejemplo que no e probado pero que es del estilo que tu quieres: Código: <html> Como ves da igual que el usuario vea como se envia los datos (en realidad cualquier programador experimentado sabe sacar como se envian los datos ya sea por ajax o por formularios en html ). Para responder a tu pregunta inicial de como ocultar ..... no se puede ocultar el codigo javascript incluso si miras las paginas de los grandes con atencion veras como estos envian los datos. En realidad que el usuario vea o no el codigo no es una vulneridad (pues el solo ve el codigo de cliente ). Lo unico vulnerable que debe preocupar a los programadores se controlan desde php, estos deben verificar que ninguna dato pasado pueda ser usado para hacer daño al servidor. Simplificando esta mini explicacion, un programador web solo debe preocuparse de las vulneridades que puedan afectar al servidor usando para evitarlo el codigo de servidor elegido ya sea php, asp ..... Saludos, espero que te ayudara aunque me quedo un poco largo. Título: Re: Seguridad en javascript Publicado por: Hagoromo en 6 Diciembre 2008, 16:47 pm Caray! Vaya currazo!
Me ha quedado muy claro, muchísimas gracias por el aporte. Se merece un chinchetazo, y de los grandes... :D LO pruebo este finde y os comento. Saludos!!! |