Lo primero que debes comprobar es los valores que tiene la cookie, haz un var_dump($_COOKIE) para ver que datos tiene la cookie, por supuesto hazlo desde la página que no funciona.
Un saludo
| ||||
Respuesta: Seguridad en PHP [Importante]; Me muestra array(0) { } Es decir, que esta vacio.. :S! Sin embargo en el panel de administración, antes de dirigirme a usuarios.php array(2) { ["usNick"]=> string(x) "x" ["usPass"]=> string(x) "x" } |
| ||||
Respuesta: Seguridad en PHP [Importante]; Prueba cambiado los setcookies de la página de login por estos: Código PHP: Un saludo |
| ||||
Respuesta: Seguridad en PHP [Importante]; Cita: Eeeeeeeeso es, a eso me refería.
Iniciado por Heli0s Prueba cambiado los setcookies de la página de login por estos: Código PHP: Un saludo Voy a probar. Eres un crack macho menudo fenomeno. |
| ||||
Respuesta: Seguridad en PHP [Importante]; Bueno, ahora te planteo una duda y un problema. Problema Con IE7, ahora no me coge las cookies en administracion.php que esta en el mismo directorio que se crean las cookies, pero si me las coge en otro directorio como es el de usuarios. Es por lo de la barra "/" esa que añadimos a las cookies con mozilla si funciona pero con ie no :S Ahora la duda; Para insertar seguridad a un sistema de Id's (para lo de las noticias vamos) con utilizar $var = (int)$_GET['id']; es suficiente? o tambien utilizo lo de if(!is_numeric($_GET['id'])){ die("La variable ID contiene caracteres no permitidos"); //aqui podriamos logear este comportamiento en un archivo log, guardar ip, enviarnos un email, lo que hiciese falta } |
| ||||
Respuesta: Seguridad en PHP [Importante]; Cita: ¿No funcionan en la misma carpeta que han sido creadas pero si en otras carpetas? ¿Te refieres a eso? Cita: Todo depende, ¿Quieres tener algún tipo de log donde se te informe de ese tipo de comportamiento?, si es así, el segundo método que es el que te permite usar un condicional, pero en vez de is_numeric te recomiendo que uses is_int, ya que is_numeric permite números como 0,232424 y no creo que ese número vaya a ser el de una ID, is_int solo admite enteros, 0,1,2,3,4, etc.
Iniciado por Flow89 Para insertar seguridad a un sistema de Id's (para lo de las noticias vamos) con utilizar $var = (int)$_GET['id']; es suficiente? o tambien utilizo lo de if(!is_numeric($_GET['id'])){ die("La variable ID contiene caracteres no permitidos"); //aqui podriamos logear este comportamiento en un archivo log, guardar ip, enviarnos un email, lo que hiciese falta } Si no te hace falta tener un log de ese tipo de comportamiento, el primer método es completamente seguro, obligará a que sea int, si te enviasen un string así: 12prueba el resultado sería 12, si te enviasen algo asi: prueba12 el resultado sería 0, pero siempre devolverá un número entero. Un saludo |
| ||||
Respuesta: Seguridad en PHP [Importante]; Cita:
Iniciado por Flow89 Bueno, ahora te planteo una duda y un problema. Problema Con IE7, ahora no me coge las cookies en administracion.php que esta en el mismo directorio que se crean las cookies, pero si me las coge en otro directorio como es el de usuarios. Es por lo de la barra "/" esa que añadimos a las cookies con mozilla si funciona pero con ie no :S Ahora la duda; Para insertar seguridad a un sistema de Id's (para lo de las noticias vamos) con utilizar $var = (int)$_GET['id']; es suficiente? o tambien utilizo lo de if(!is_numeric($_GET['id'])){ die("La variable ID contiene caracteres no permitidos"); //aqui podriamos logear este comportamiento en un archivo log, guardar ip, enviarnos un email, lo que hiciese falta } He decidido utilizar mejor el if, y he encontrado este codigo por internet Código PHP: El asunto sería.. el codigo final como quedaría? if(!is_int($_GET['id'])){ die("La variable ID contiene caracteres no permitidos"); include("cazaIP.php"); $victima = getRealIp(); $sql = "INSERT INTO ips (ip,incidente) VALUES('$victima','intento de Inyeccion SQL')"; mysql_query($sql); } Algo así funcionaría?? Ah, y sí, me refiero a eso, en Internet Explorer ahora no me coge las cookies en el mismo directorio pero si en otros. |
| ||||
Respuesta: Seguridad en PHP [Importante]; 1.Que podemos hacer respecto a lo de las cookies? 2.Cual sería la sintaxis correcta para que eso funcionase? xDD. Dudo mucho que la que puse yo funcione... jejeje |
| ||||
Respuesta: Seguridad en PHP [Importante]; Tienes que darme más detalles de cuando falla y cuando no, y revisa que borraste las cookies y las volviste a crear, con todos los navegadores con los que estés realizando las pruebas. Cita: La sintaxis es correcta, solo falta que después no tengas ningún fallo a la hora de escribir todo el código, pero lo que escribiste es la idea, lo único que he visto mal en eso que escribiste es que lo primero que has puesto es die("mensaje"), y recuerda que die finaliza la ejecución del script por lo tanto no se grabaría nada en la base de datos.Además, cuanto más código escribas menos errores irás cometiendo. Un saludo |
| ||||
Respuesta: Seguridad en PHP [Importante]; He creado una tabla en mi bbdd que se llama, ataques y tiene los campos id, ip e incidente. Este es el codigo de bnoticias, página en la que me salen todas las noticias y yo elijo cual borrar. Código PHP: Código PHP: Y bueno el codigo del script lo tienes un pelin más arriba pero lo vuelvo a poner: Código PHP: El caso es que SIEMPRE me sale el mensaje, y en la BBDD me aparecen campos, id (Se autoincrementa) IP con el valor 0 en todas y el incidente Ataque Inyeccion SQL. Bueno, con esto ya se que el script no funciona correctamente ya que no coge la ip, luego buscare otra manera, pero lo que me interesa es .. Porque siempre muestra el mensaje? |
| ||||
Respuesta: Seguridad en PHP [Importante]; Me acabo de fijar que cualquier cosa pasada por GET o por POST la devuelve como string, si metes un número devolverá un string conteniendo esos números, entonces se me ha ocurrido una expresion regular que examine que solo tenga números. Código PHP: |
| ||||
Respuesta: Seguridad en PHP [Importante]; He echo esto, pero no funciona xD Código PHP: PHP Error Message Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/a7366460/public_html/noticias/borrar.php on line 11 |
| ||||
Respuesta: Seguridad en PHP [Importante]; Ala que bestia eres xD, si antes lo habías puesto bien, ¿Por que usas echos? La función echo es para mostrar algo en pantalla, acaso quieres mostrar la consulta en pantalla? ¿O mostrar un include en pantalla? Rectifica todos esos echos. Un saludo |
| ||||
Respuesta: Seguridad en PHP [Importante]; Al archivo de las noticias no se lo puedo hacer no? Porque si no, si utilizo algun caracter o alguna etiqueta de HTMl para poner las noticias, luego no sale... o si? xDD |
| |||
Respuesta: Seguridad en PHP [Importante]; Cita: Disculpa, Helios, me lo puedes explicar? Sé que es para comprobar los post get... pero lo que no entiendo exactamente que hace el array y como llamas a la función(no estoy muy familiarizado con estas)
Iniciado por Heli0s Os voy a dejar un código que creo que os resultará interesante y os gustará: Código PHP: Un saludo
__________________ Tengo una pregunta que a veces me tortura... ¿El loco soy yo o los locos son los demás? |
| ||||
Respuesta: Seguridad en PHP [Importante]; Este script no se usa de ninguna manera, ya hace el trabajo que tiene que hacer solo, primero definimos una función para procesar datos y devolverlos modificados, en este caso modificados a una manera más "segura". Después lo que hacemos es una vez modificados volver a ponerlos en los arrays globales, para que se puedan seguir usando como si no hubiese pasado nada, array_map lo que hace es pasar todos los elementos del array que le indiques en el parámetro dos por la función que le indiques en el parámetro uno. Un saludo |
| |||
Respuesta: Seguridad en PHP [Importante]; Flow89, siento que te has aprovechado de la generosidad de Heli0s. Las preguntas que se hacen en el foro son para problemas concretos, pero Heli0s te ha venido a dar clases particulares de PHP. No te detenías a ver tu código e identificar cuál era el fallo, lo digo porque a veces preguntabas sobre tu error cuando era que no cerrabas un echo con su ;. Empápate un poco más en PHP y procura utilizar más el ensayo y error. Por cierto, cada vez que quieran un mysql_real_escape_string les recomiendo crear una función con un nombre más cortito, por ejemplo: Código PHP: ¡Saludos! |
| ||||
Respuesta: Seguridad en PHP [Importante]; Cita: No te voy a negar que desde un primer momento Heli0s me ha dado muchísimo apoyo, ya que no tenia ni idea de PHP y gracias a él ahora más o menos me defiendo.
Iniciado por Luisus Flow89, siento que te has aprovechado de la generosidad de Heli0s. Las preguntas que se hacen en el foro son para problemas concretos, pero Heli0s te ha venido a dar clases particulares de PHP. No te detenías a ver tu código e identificar cuál era el fallo, lo digo porque a veces preguntabas sobre tu error cuando era que no cerrabas un echo con su ;. Empápate un poco más en PHP y procura utilizar más el ensayo y error. Por cierto, cada vez que quieran un mysql_real_escape_string les recomiendo crear una función con un nombre más cortito, por ejemplo: Código PHP: ¡Saludos! Pero tampoco estoy de acuerdo contigo en lo de los errores. Posteo todos los errores, sean cuales sean, sea sintaxis o sea de cualquier tipo. Pues creo que a la gente le puede servir en cualquier momento. Y si le has echado un vistazo al post, verás que tambien hay muchos errores que posteo, y los corrijo yo mismo posteando también el resultado de como debería quedar, por si alguien lo quiere utilizar. En todo caso, creo que quien debe decir algo al respecto es Heli0s que es el afectado, el ya sabe que estoy sumamente agradecido y lo seguire estando por todo el apoyo y el conocimiento que estoy ganando gracias a el, que es un crack! Bueno dejando de lado ese tema, seguiré con la seguridad. Respecto a usar una funcion para guardar una variable.. nose, puede ser util la verdad, me ahorrará tiempo, puede que lo aplique, gracias por el consejo. Un saludo. |
| ||||
Respuesta: Seguridad en PHP [Importante]; Bueno, he aplicado seguridad al php que utilizo para crear las noticias. Este es el codigo: Código PHP: Y me lo guarda en la base de datos de esta manera:
Código:
Es decir, remplazando etiquetas y caracteres, que es lo que buscamos para evitar ataques, no?<p><strong>asdasdasd</ strong></p><p><em> sadasdasdasdasdasd<br /><br /> </em></p><ol><li>asd< /li></ol><ul><li>asdasd</ li></ul><p>^, : ; ? ¿ $ % &amp; asdasd más</p> El caso es que luego, al mostrarlo en el index.php me sale así:
Código:
Pero no me procesa las etiquetas... sino que me salen escritas.<p><strong>asdasdasd</strong></p> <p><em>sadasdasdasdasdasd<br /><br /> </em></p><ol><li>asd</li></ol><ul><li>asdasd</li> </ul><p>^, : ; ? ¿ $ % & asdasd más</p> He echo algo mal, debo utilizar un mysql_real_escape_String en vez de htmlentities.. o que es lo que tengo que hacer exactamente? :S Un saludo. |
| ||||
Respuesta: Seguridad en PHP [Importante]; A expensas de que alguien me ayude a arreglar ese pequeño problemilla que ha surgido, sigo avanzando con la seguridad y.. Me recomendáis encriptar las contraseñas? (Ya sea en md5 o sha-1 o cualquiera). El caso, es que si, encriptadas son mas seguras, pero no se pueden desencriptar, si a algún usuario se le olvida la contraseña, no la puede recuperar.. xD Entonces no se si merecerá la pena o no... ¿Que opinais? Un saludo.
__________________ Seamos realistas. Busquemos lo imposible. ;) La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta. |
| |||
Respuesta: Seguridad en PHP [Importante]; Cita: Tampoco tienes por qué hacerlo.
Iniciado por Flow89 A expensas de que alguien me ayude a arreglar ese pequeño problemilla que ha surgido, sigo avanzando con la seguridad y.. Me recomendáis encriptar las contraseñas? (Ya sea en md5 o sha-1 o cualquiera). El caso, es que si, encriptadas son mas seguras, pero no se pueden desencriptar, si a algún usuario se le olvida la contraseña, no la puede recuperar.. xD Entonces no se si merecerá la pena o no... ¿Que opinais? Un saludo. Yo he creado un sistema con contraseñas encriptadas sha-1, y lo único que cuando se olvidan se tiene que generar otra. En mi caso es sencillo porque las crea el admin y no se mandan al correo xD Aunque te cuesta más hacer un panel de edicción rápida de usuarios, que te aparezcan registros y las contraseñas solo se cambian si pone algo xD
__________________ Tengo una pregunta que a veces me tortura... ¿El loco soy yo o los locos son los demás? |
| ||||
Respuesta: Seguridad en PHP [Importante]; Cita: Ya tengo creado el panel, te dejo el código por si te sirve de algo.
Iniciado por millan2525 Tampoco tienes por qué hacerlo. Yo he creado un sistema con contraseñas encriptadas sha-1, y lo único que cuando se olvidan se tiene que generar otra. En mi caso es sencillo porque las crea el admin y no se mandan al correo xD Aunque te cuesta más hacer un panel de edicción rápida de usuarios, que te aparezcan registros y las contraseñas solo se cambian si pone algo xD Aquí te muestra todos los usuarios para que elijas el que quieres modificar, solo te lo muestra si estas logueado, sino te redirecciona, ademas los resultados estan paginados : Código PHP: En este (el formulario) editas los datos: Código PHP: Código PHP: Me has dado una buena idea, con eso de que solo se modifica si escriben algo, ahora lo que puedo hacer es quitar el .$row[password]. y que no la muestre, y solo si escriben algo en ese campo se añada tambien al update. Si dejo un campo vacio y le añado al update, es decir, $password no tiene nada porque no han escrito nada, pero en el update esta puesto $password, me reemplazaría el cntenido del campo en la bbdd y lo dejaría vacío? Si pasase eso tendria que hacer un if, que compruebe, si $password esta vacio, un if que haga un update sin el $password, si contiene algo, else update con el $password.
__________________ Seamos realistas. Busquemos lo imposible. ;) La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta. |
| ||||
Respuesta: Seguridad en PHP [Importante]; Lo correcto es encriptarlas de una forma que no se puedan desencriptar, ya que no tienen porque ser desencriptables, esa información no debería poder ser accedida por nadie, ni siquiera por ti, y el sistema sigue siendo igual de eficaz aunque la contraseña sea desencriptable. Sobre lo de que no te procesa las etiquetas, es que eso es precisamente lo que hace htmlentities, cambiar los signos para que las etiquetas no se procesen, para que se muestren, y de esta forma evitar los ataques XSS. Sobre lo que dijo Luisus, cada uno puede colaborar/ayudar lo que quiera, si yo estoy colaborando de más en este post es por mi voluntad. Un saludo |
Etiquetas: |