Saludos phperos...
¿ Sería seguro pasar una consulta SQL a través de la URL si va metida en un array ?
| |||
sinceramente hoy en dia no hay nada seguro ,no soy nigun experto tu date cuenta de que si puedes meter una consula sql en el array y lo pasas a travez del sql estas pasando la consulta , de tal forma a las variables pasadas por url se pueden asignar valores, carateres , ect.. url\?$matriz="laconsulta"; y yo cojo y hago url\?$matriz="Select user,pass from table_users" , te quito la laconsulta y meto esto , tp soy un experto y no sabria como hacerlo pero no se me da q pasar la consulta por la url no es nada seguro, hoy en dia ya te hace injeccion de codigo sql sin ejecutar la consulta por url, yo te recominedo q pases las variables solo por url.
__________________ Mi WEB Intercambio enlaces de texto RedesdelWeb mi msn [email protected] :si: :si: :si: :si: Última edición por has; 29/09/2005 a las 05:39 |
| |||
Nunca debes pasar una consulta SQL por el URL (sea en un array o como sea) ... Lo que debes es pasar tus variables con sus valores que luego compondran tu sentencia SQL adecuada .. No sé el objetivo de pasar tu sentencia SQL a ejecutar (podría ser una especi de GUI para Mysql?) .. bueno .. si fuese así, debes implementar un buen sistema de filtrado de esa variable que va a contener tu sentencia SQL y sólo aceptar las sentencias SQL que permitas hacer .. por ejemplo .. Si sólo vas hacer un "SELECT" .. descarta cualquier palabra tipo "DELETE" .. "UPDATE" .. etc que pueda llegar de ahí por una alteración de tus datos (URL/campos). En otros casos podrías usar sesiones en lugar de propagar ese dato por el URL .. generas tu variable de sesión donde lo originas y lo lees en el scirpt que pasas. De esta forma no circulará por el URL ese dato "sensible" de ser modificado . .No obstante no está de más validar lo que anteriormente te he comentado. Un saludo, |
| |||
Como te han dicho no es nada seguro. Yo también usaría sesiones y aún usando estas tendrías que usar alguna función(es) para filtrar el contenido. Véase: mysql_real_escape_string(), addslashes(), str_replace(), etc como ya te han dicho. Si dijeras exactamente que es lo que quieres hacer a lo mejor podemos darte otras alternativas. |
| |||
Gracias. Pues es bastante más sencillo... Me he creado un script que pagina los resultados de una consulta. La consulta está recogida en una variable. Por lo que, cuando llamo a la página 2 (por ejemplo), necesito pasarle esa variable que contiene la consulta para poder seguir ejecutando la paginación. He estado intentando averiguar cómo lo hace el Paginator de JPinedo e incluso me pregunto cómo lo hace el buscador de forosdelweb.com. La conclusión a la que he llegado es crear una variable de sesión tipo array. Aplicarle un ID a ese array que guarde la consulta. Por ejemplo: $miconsulta(ID)="SELECT * FROM ..." y pasar ese ID a través de la URL junto con el número de página (para la paginación). La única pega es: cómo y cuándo debo eliminar esa variable de sesión $miconsulta(ID) para que no se quede eternamente ahí guardada. |
| |||
Yo te recomendaría leer más atentamente el código del "Paginator" .. La consulta SQL NO se pasa por el URL en ningún momento .. es FIJA (salvo lo que puedas tener variable como otras variables para hacer filtrados y demás). Un saludo, |
| |||
Gracias por vuestra paciencia. Entiendo entonces que: Tengo que pasar los parámetros de la consulta, cada vez, a través de la URL usando un array. Y que tengo que construir la consulta cada vez que se llame a una página (de paginación). A Thisone: Yo uso mysql_real_escape_string($cadena,$conexión) únicamente. ¿ Es bastante ? ¿ Existe alguna forma de usar esta función sin tener la conexión a la base datos activa ? |