Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - eferion

#1071
creo que no me he explicado.

si yo tengo, por ejemplo,

pagina.php?id=1

evitar inyección es tan simple como verificar que id es numérico y mostrar un error en caso contrario.

En el caso de strings puedes optar bien por buscar los caracteres peligrosos y si se encuentra alguno abortar la operación, bien por eliminar dichos caracteres, bien por usar funciones de decodificacion de urls seguras, que sustituyen estos caracteres por representaciones que no causan problemas.

Es una mala práctica de cualquier programador no validar todas y cada una de las entradas del usuario.
#1072
Eso de vulnerable a inyecciones SQL será si no validas lo que recibes, no??
#1073
El link en sí mismo no te va a mostrar nada. Un enlace no es más que una referencia que pones en una página web para que al activarlo puedas desplazarte a otra página web.

Tienes que hacer que la página ver_mis_puntos lea el parámetro id enviado por GET y se comunique de forma conveniente con la base de datos para recabar la información que necesitas. Después de eso la muestras por pantalla.

Si necesitas más información para lanzar la consulta a la base de datos tendrás que ver la forma de proporcionársela a la página ( más parámetros GET, por POST, variables de sesión, cookies, ... )
#1074
lo se, y soy partidario de usar siempre, en la medida de lo posible, la librería estándard... pero yo he tenido que explicar a veces conceptos de programación a gente un poco novel y ha sido más fácil explicar primero el método cutre y luego, más adelante, el bueno.

Pues no he sufrido yo para que más de uno en mi universidad entendiese el tema de los punteros dobles y sus posibilidades...
#1075
Cita de: Eternal Idol en 24 Julio 2013, 21:37 PM
Con restarle el primer parametro que se le pasa a strchr obtenes el indice ... aca ejemplo:

http://www.cplusplus.com/reference/cstring/strchr/

Eso lo se... pero yo creo que para alguien que más o menos está empezando entender que esos desplazamientos en memoria son iguales al index buscado puede no ser trivial
#1076
Cita de: BlackZeroX (Astaroth) en 24 Julio 2013, 21:05 PM
¿Un caracter? strchr()

Dulces Lunas!¡.

Con eso no consigues la posición ( en índice ) del carácter buscado.
#1077
Cita de: rir3760 en 24 Julio 2013, 17:45 PM
Ello podría realizarse con strchr (prototipo en <string.h>) o un simple bucle pero hay problemas: para empezar no se trata de una cadena sino de una secuencia de bytes  y el numero de estos es el valor de retorno de la función recv.

Efectivamente, lo que se envía por un socket es un vector de bytes... sin embargo, si ese vector de bytes se ha compuesto a partir de una cadena de caracteres... la conversión es directa y no da problemas.

Es decir, si yo envío "Hola", la cadena es 'H', 'O', 'L', 'A', '\0' y el vector de bytes tendrá exactamente la misma información. Si yo cojo ese vector de bytes y se lo enchufo a cout como un array de caracteres en la consola me va a imprimir "Hola"
#1078
Para darte una respuesta definitiva tendría que ver el libro, conocer los temas que trata y cómo los trata.
#1079
El problema puede venir dado porque los números decimales pueden sufrir una cierta falta de precisión.

Los números expresados en coma flotante tienen una notación diferente a la usada para almacenar números enteros.

En el caso de los números decimales, es complicado encontrar ( con un número finito y relativamente reducido de bits ) una combinación que resulte en la representación exacta del número.

Dicho con un ejemplo: si calculas la representación binaria ( a pelo ) de 0.46 te da

0.46 * 2 = 0.92 -> 1er bit 0
0.92 * 2 = 1.84 -> 2º bit 1
0.84 * 2 = 1.68 -> 3er bit 1
0.68 * 2 = 1.36 -> 4º bit 1
...

Si para representar el dígito decimal con precisión exacta requieres más bits de los que el sistema es capaz de proporcionarte al final eso te obliga a falsear el número almacenado.

Normalmente, que yo sepa, con 32 bits ( un float en un pc típico ), se obtiene una precisión de 6 cifras.

Posiblemente los tiros vayan por ahí... yo me inclino a pensar que, posiblemente, la máquina que comenta el problema es de 16 bits. No lo he calculado, pero no me extrañaría que con 16 bits la precisión máxima fuese de, por ejemplo, 2 dígitos... con lo que al tener 0.45, la precisión se va en el 0.4 y las centesimas podrían bailar.

Si con 16 no se reproduce el problema entonces puede que su máquina sea de 8 bits... calcular el margen de error es posible pero no tengo ganas para ponerme calculadora en mano :)
#1080
Ya, a mi al principio me pasó lo mismo... tuve que leerlo tranquilamente un par de veces para verlo claro jejeje