Ir al contenido


Foto

Seguridad php-mysql para dummies


  • Por favor identifícate para responder
10 respuestas en este tema

#1 Pili

Pili

    Member

  • Miembros
  • PipPip
  • 44 mensajes
  • LocationCiudad de México

Escrito 10 mayo 2014 - 01:50

Hola nuevamente.
Estoy aprendiendo php-mysql gracias a los videos de Cesar Cancino (un fregonazo como diríamos en mi rancho).
Ya pasé todos los videos del curso php y llevo como veintitantos del curso de poo.
He aprendido mucho y he desarrollado un par de sitios pero hay un tema que César siempre menciona que después veremos,al que no he llegado y me preocupa mucho: La seguridad.

Actualmente estoy trabajando en un proyecto para denunciar, por lo que de antemano sé que resultará incómodo para más de uno.

Muchas veces me he atorado y recurrido a este foro, en donde he tenido la fortuna de conocer personas super conocedoras, con la disposición de ayudar, así es que espero que  puedan compartir tips de seguridad php-mysql para pricipantes.

He investigado y no encontré mucho en la red. Lo que hay, definitivamente es "muy elevado" para alguien que comienza.

Necesito acciones concretas explicadas para principiantes. Por ejemplo:

1. Crear un usuario de la base de datos solo con los permisos básicos (ejemplo: consultar, insertar, modificar)

2. Entrecomillar los números en las consultas

Considero que este tema podría resultar de interés para muchos.

De antemano, mil gracias!
  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 11 mayo 2014 - 11:51

Si estás por iniciar el proyecto yo te aconsejaria usar Procedimientos almacenados pues con ellos ganas tanto en rendimiento de la consulta como en cuestiones de seguridad.

¿Qué base de datos usaras?
  • 0

#3 Pili

Pili

    Member

  • Miembros
  • PipPip
  • 44 mensajes
  • LocationCiudad de México

Escrito 12 mayo 2014 - 06:08

Como siempre, gracias mil por tu disposición poliburro!
Es MySql y aunque ya pase un videotutorial de procedimientos almacenados, soy principiante (muy). Estoy  mucho más familiarizada con el phpmyadmin que con MySQL-front

Ya voy bastante adelantada (Poo sin Procedimientos almacenados) pero si me dices que es conveniente (más seguro / menos vulnerable) con procedimientos almacenados tendré que aplicarme y aprender.
Cómo ves? Intento rehacerlo todo?
Algún otro tip o sugerencia?
De verdad me preocupa el tema de la seguridad.
Lo dicho: Eres un tipazo!!
  • 0

#4 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 12 mayo 2014 - 06:28

Pili, seguridad y dummies.... con todo respeto no pueden combinarse en la misma oración.
La seguridad es un tema muy importante como para despreciarla y relajarla. O se hace las cosas bien o no se hacen. A medias, y a dummie, no va.

Yo en el ámbito web no puedo ayudarte mucho. No estoy familiarizado pero de lo que toco de oido las cosas van por:
1) Evitar la inyección de código
2) Emplear métodos seguros cuando se utiliza $_POST y $_GET
3) Que el sitio corra sobre HTTPS.

Eso sólo para empezar, y en cuanto a lo más cercano hace a PHP.

No hay que despreciar que también la seguridad vaya por el servidor y su configuración. Por tanto se debe configurar apropiadamente. Prevenir ataques por medio de SSH, DDoS, etc.

En fin: que la seguridad no pasa solamente por PHP sino que los que estarán ofreciendo el hosting también hagan las cosas bien y garanticen de que el sitio no se caiga.

Saludos,
  • 0

#5 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 13 mayo 2014 - 09:01

Como siempre, gracias mil por tu disposición poliburro!
Es MySql y aunque ya pase un videotutorial de procedimientos almacenados, soy principiante (muy). Estoy  mucho más familiarizada con el phpmyadmin que con MySQL-front 


No se que tan viable para ti sea el rehacer todo lo que llevas hecho. Se me ocurre que de momento sigas estas recomendaciones en tu aplicación:

* Nunca concatenes o muestres lo que el usuario capturó en un mensaje de salida.
  Si debes mandar un mensaje de error por datos mal capturados no coloques algo como esto:

  echo "el usuario $usuario es erróneo":

mejor haz algo del estilo

  echo "El usuario proporcionado es incorrecto por favor verifique";

* Para el manejo de consultas en tu aplicación debes extremar precauciones agregando una función que elimine de los campos de captura valores como "where", "like", "'", etc.

    Este problema se resuleve usando procedimientos almacenados. Pero de ti dependerá decidir comenzar a usarlos.

* Nunca muestres mensajes de error de la base de datos.

  Debes capturar los mensajes de error de la base de datos y guardarlos en un log para ti, o hacer que php te los reporte de inmediato, luego, al usaurio mostarle algo como
  "Ocurrió un error al realizar la operación, por favor verifique sus datos o intente más tarde"

* Usa OOP.
  No conozco los cursos de Cesar pero creo que están orientados a ser procedurales. Yo te aconsejaría que usaras solo programación orientada a objetos y de ser posible template engines parar separar el código de la presentación.


Bueno a groso modo esto es lo que me viene a la mente por el momento. Saludos.
  • 0

#6 apicito

apicito

    Advanced Member

  • Miembros
  • PipPipPip
  • 104 mensajes

Escrito 14 mayo 2014 - 12:38

Una vez que controlas la programación orientada a objetos, quizás deberías pensar en no reinventar la rueda. Ya programadores que saben muchísimo se han preocupado de los problemas más comunes en la programación y han aportado soluciones que funcionan, incluida, por ejemplo, la seguridad. A esto se le llama framework.
De php existen muchos. Yo voy a proponerte uno, que es el que utilizo yo, por las siguientes razones:
Symfony 2.
1. http://blog.solucion...tilizar-symfony
2. Existe una ingente cantidad de información en castellano para aprender: Manuales, Tutoriales, Videos: http://symfony.es/documentacion/
3. Una gran comunidad: https://groups.googl...orum/symfony-es
Un saludo.
  • 0

#7 Pili

Pili

    Member

  • Miembros
  • PipPip
  • 44 mensajes
  • LocationCiudad de México

Escrito 15 mayo 2014 - 08:29

Una vez que controlas la programación orientada a objetos, quizás deberías pensar en no reinventar la rueda. Ya programadores que saben muchísimo se han preocupado de los problemas más comunes en la programación y han aportado soluciones que funcionan, incluida, por ejemplo, la seguridad. A esto se le llama framework.
De php existen muchos.


Agradezco muchísimo tu respuesta y  el tip apicito... suena interesante. Voy a ver si me dan mis escasos conocimientos para trabajar con framework...
Ahí te cuento como me va!

Saludos!!
  • 0

#8 Pili

Pili

    Member

  • Miembros
  • PipPip
  • 44 mensajes
  • LocationCiudad de México

Escrito 15 mayo 2014 - 08:42

No se que tan viable para ti sea el rehacer todo lo que llevas hecho. Se me ocurre que de momento sigas estas recomendaciones en tu aplicación

Yo tampoco sé que tan viable sea comenzar de nuevo poliburro, pero de verdad me preocupa el tema y tengo que hacer algo.
Como ves la propuesta de un framework? (ver la respuesta de apicito)
Me encantaría tener opiniones sobre lo más conveniente (y viable) para alguien que comienza.
No tengo más conocimientos que lo que he aprendido con los videotutoriales de César y a través de este bendito foro.
Nuevamente gracias y bonito día!
  • 0

#9 Pili

Pili

    Member

  • Miembros
  • PipPip
  • 44 mensajes
  • LocationCiudad de México

Escrito 15 mayo 2014 - 10:17

Una vez que controlas la programación orientada a objetos, quizás deberías pensar en no reinventar la rueda. Ya programadores que saben muchísimo se han preocupado de los problemas más comunes en la programación y han aportado soluciones que funcionan, incluida, por ejemplo, la seguridad. A esto se le llama framework...

Hola nuevamente! Estaba feliz porque siguiendo tu recomendación de considerar usar un framework, me encontré este curso de http://www.cesarcanc...cion-n1331.html y no pasé del primer video... ni siquiera lo puede instalar!!

Ya pedí auxilio en este topic http://www.delphiacc...mework-2-(-zf2-)/
Esperemos a ver si alguien me puede desatorar!
:

  • 0

#10 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 15 mayo 2014 - 10:46

Hay una versión open source y libre de zend.

http://framework.zend.com/
  • 0

#11 Pili

Pili

    Member

  • Miembros
  • PipPip
  • 44 mensajes
  • LocationCiudad de México

Escrito 15 mayo 2014 - 05:59

Hay una versión open source y libre de zend.

http://framework.zend.com/


Gracias poliburro  pero estoy tratando de seguir el "get started" de la página frameworkzend.com y no logro instalarlo (tampoco pude siguiendo el video 1 de Cesar)

Como  explica en el "get started", una vez en la carpeta creada para mi proyecto en la consola:

git clone git://github.com/zendframework/ZendSkeletonApplication.git
cd ZendSkeletonApplication
php composer.phar install


Después de la primera linea me manda:
"git" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.

Así es que comienzo a pensar que este tema del Zend no es para mi... parece que está muy elevado para mis conocimientos ¡no lo puedo ni instalar!
¿alguna sugerencia? o de plano me rindo?
Saludos!



  • 0




IP.Board spam blocked by CleanTalk.