Es necesario validar en php los campos select, así como los campos radio para evitar posibles valores que difieran con los etablecidos en el formulario considerando un ataque a través de un formulario externo???
Grácias
| |||
Validar campos select, radio? Es necesario validar en php los campos select, así como los campos radio para evitar posibles valores que difieran con los etablecidos en el formulario considerando un ataque a través de un formulario externo??? Grácias |
| |||
Respuesta: Validar campos select, radio? los campos select son fáciles de validar ya que tienen campos establecidos... al momento de imprimir el select en pantalla puedes guardar los datos de los option en un array. y luego validar lo que te llegue mediante el formulario con la funcion in_array() saludos! |
| ||||
Respuesta: Validar campos select, radio? bueno, lo de hidek1 no aplica en algunos casos: comúnmente mis select se alimentan de tablas "fuertes" y cuando hago los inserts o updates correspondientes a las tablas "débiles", las FK se encargan de hacerme saber si algún select está alterado, por lo tanto el controlar el tipo de error devuelto por el dbms es fundamental y ahorra mucho código |
| |||
Respuesta: Validar campos select, radio? Muchas grácias!! Siempre hay que validar toda información introducida por el usuario :) Y otra cosa: Lo primero que hago con los campos es comprobar si los he recibido... return isset(campo1, campo2, ...) ...pero esto sólo lo hago con los campos que son oblogatorios, puesto que los que no lo son, no son indispensables. Deberia comprobar de todas formas que existen estos campos no obligatorios? Por supuesto que luego utilizo funciones para validar todos los inputs, sean obligatorios o no. Lo que puede pasar es que si no compruebo con isset si existen los campos NO Obligatorios, y se ejucuta un ataque con form externo, y dichos campos no existen, al ejectuar la query no encontraria dicho valor y introduciria un valor vacio!! Supone un problema esto?
Código PHP:
Ver original Sería conveniente comprobar si existe el campo: ?
Código PHP:
Ver original Grácias de antemano |
| ||||
Respuesta: Validar campos select, radio? sí, porque una cosa es comprobar que el campo fue enviado isset y otra muy diferente si está vació empty. que pasa, que el atacante puede deducir cuales son los campos requeridos (cosa que debes de definir en la tabla en la DB también) y por ende solo envía esos no es muy necesario validar si el campo esta vacío o no (depende del caso), sino comprobar el origen correcto, por ejemplo que si viene de POSt o GET es muy importante, pro eso siempre se usa isset($_POST['campo']) en el caso de los checkbox no puedes usar isset para verificar si se envió porque los no marcados no se envían al php, en este caso si es recomendable evaluar que el value sea el indicado si fue enviado Última edición por maycolalvarez; 10/03/2010 a las 06:42 |
| |||
Respuesta: Validar campos select, radio? Vale ya me queda claro. Hay que asegurarse que recibimos toda la información que solicitamos, idependientemente de que sean o no obligatorios. Cita: Veo un inconveniente: El atacante también podría establecer los valores que quisiera en ese array y por tanto podríamos introducir información no deseada en la DDBB, ¿No? A no ser que crees una variable de sesión para guardar el array!!Grácias |
| |||
Respuesta: Validar campos select, radio? :S... no entendiste lo que dije :P te doy un ejemplo -obtengo datos de sql -creo un select y lo imprimo en pantalla -dentro del bucle extraigo un array con los datos que puse en los value -con el mismo array valido los datos .. en ningun momento salgo de la pagina ni paso el array por el cliente.. y si fuera en paginas separadas siempre puedes hacer la consulta denuevo.. aunque me agrada mas la opcion de establecer los campos permitidos desde sql saludos! |
| ||||
Respuesta: Validar campos select, radio? Bueno para eso te dieron in_array, para validar q valores debes encontrar en el array. Esto dependerá de otras cosas, además. Por ejemplo ¿q esperas recibir o de q te quieres proteger exactamente? A ver, si en los select esperas valores NUMERICOS, bueno pues debería bastar con un casting forzado al recibirlo, pues sería solo eso, un número. Si esperas cualquier tipo de cadena, deberías utilizar las funciones que PHP tiene para esto o crear la tuya propia, me da la idea rápido utilizar expresiones regulares. Si esperas solo determinadas cadenas podrías desde MySQL fijar los campos, mediante campos tipo ENUM. El tema es largo pero deberíamos empezar por CONTRA Q TE QUIERES PROTEGER |
| |||
Respuesta: Validar campos select, radio? Cita: Estoy un poco confundido :(. A ver, acabas de obtener la información directamente de la tabla, entonces ¿ para que la validas?. En el supuesto caso de enviar la info, mi caso, aplicaría como tu bien dices una query para comprobar los valores del select... Eso si lo veo!! Cita: Quiero protegerme de información erronea introducida por el usuario mediante ataques de envio de forms desde su máquina.
Iniciado por eulloa ¿q esperas recibir o de q te quieres proteger exactamente? A ver, si en los select esperas valores NUMERICOS, bueno pues debería bastar con un casting forzado al recibirlo, pues sería solo eso, un número. Si esperas cualquier tipo de cadena, deberías utilizar las funciones que PHP tiene para esto o crear la tuya propia, me da la idea rápido utilizar expresiones regulares. Si esperas solo determinadas cadenas podrías desde MySQL fijar los campos, mediante campos tipo ENUM. El tema es largo pero deberíamos empezar por CONTRA Q TE QUIERES PROTEGER Ya tengo validados los campos ENUM en la base de datos, pero aún así le tienes que pasar los valores definidos por que si no, la query fallará. Por ejemplo necesito que el campo select $_POST['forma_contacto'] sólo contenga los valores 'movil', 'email', o 'telefono'. Por tanto necesitaré o bien crear un array propio con estos valores o tener un tabla FORMAS_CONTACTO con dichos valores para validar que la forma de contacto es una de estas 3 opciones y no 'FAX' ( por ejemplo ) |
| |||
Respuesta: Validar campos select, radio? bueno creo que lo mejor en este caso es un ejemplo para que no te confundas mas de lo que estas
Código PHP:
Ver original es un tanto basico el ejemplo pero sirve para su proposito saludos |
| |||
Respuesta: Validar campos select, radio? Grácias!! :) Y como crees que es mejor validar si la info es correcta, con queries como tu ejemplo o con arrays para tener que evitar hacer consultas?? Supongo que si el select es corto array, por el contrario query, no? Un sáludo |
| |||
Respuesta: Validar campos select, radio? depende de lo que quieras en realidad.. ya que los select no siempre seran de una consulta sql... pueden ser tambien datos de ciudades paises etc.. en ese caso puedes usar el asunto del array.. en la mayoria de los foros donde me preguntan el pais le modifico y no tienen protección alguna.. saludos! |
| |||
Respuesta: Validar campos select, radio? Grácias :) El único 'inconveniente' es que se tienen que realizar validaciones para todo tipo de campos, y sobre todo para los select, para los que hay que crear muchas funciones ( 1 función por cada select ) para validar ( mediante arrays o queries ) que la información es la deseada!!! |
| ||||
Respuesta: Validar campos select, radio? Cita: Te creas una función de validación por donde pases todos los selects, no una sola para cada select
Iniciado por cocodj69 Grácias :) El único 'inconveniente' es que se tienen que realizar validaciones para todo tipo de campos, y sobre todo para los select, para los que hay que crear muchas funciones ( 1 función por cada select ) para validar ( mediante arrays o queries ) que la información es la deseada!!! |
| |||
Respuesta: Validar campos select, radio? Lo que he pensado es como tu dices, pero que para evitar fallos al pasar la info del selet a la función ( puesto que podria llamar a dicha función desde diferentes partes ) es crear CONSTANTES ( arrays ). Por tanto, crearé tantas constantes como selects distintos hayan!! Crees que es buena idea? |
| ||||
Respuesta: Validar campos select, radio? ummmmm, es q no le veo la práctica. Primero creo deberías pensar cuáles son tus normas para aceptar o rechazar datos. ¿para evitar fallos al pasar la info del selet a la función? Pues hombre, para eso está la misma función, para evitar esos fallos. |
| |||
Respuesta: Validar campos select, radio? Te lo pongo en un ejemplo: dentro de un mismo php puede que tengamos que validar dicho select en varias ocasiones
Código PHP:
Ver original Por Ello sería más práctico utilizar una variable global ( puesto que las CONSTANTES sólo son para variables escalares ) de la siguiente forma:
Código PHP:
Ver original Crearia tantas variables globales como selects.... ¿Te parece bien esto?¿Lo ves más práctico? |
| |||
Respuesta: Validar campos select, radio? en realidad seria mas practico usar los parámetros en las funciones en ves de entrar con variables globales saludos! |
| ||||
Respuesta: Validar campos select, radio? Cita: Mirate esto, pasas los valores a la función como parámetros, estiloCódigo PHP: |
| |||
Respuesta: Validar campos select, radio? ¿Por que es más práctico que utilizar variables globales???. De la siguiente forma répito los arrays en diferentes funciones!!!!
Código PHP:
Ver original No se si hos he entendido del todo!! ¿Así estaría bien el código? O te refieres a pasar directamente a la función f1 y f2 el array $select_hogar? Siento ser un coñazo, pero quiero desarollarlo bien para acostumbrarme al código que sea nítido y eficaz |
Etiquetas: |