Ads 468x60px

Perfil

viernes, 3 de mayo de 2013

4 Medidas de Seguridad en PHP que debes tener en cuenta

Obviamente se pueden implementar muchas reglas y protocolos de seguridad en PHP, pero comentaré algunos que considero son muy simples pero importantes. El artículo está abierto para que otros desarrolladores puedan comentar cualquier otra medida o protocolo de seguridad en PHP que consideren oportuna.
Para otro artĂ­culo tendrĂ­a que comentar aspectos y medidas de seguridad sobre el servidor de páginas web, por ahora el más popular para servir páginas en PHP es Apache, aunque cada vez va tomando más fuerza Nginx.
Durante muchos años, PHP ha sido una plataforma estable, de bajo costo en el que operar aplicaciones basadas en web. Como la mayoría de las plataformas basadas en web, PHP es vulnerable a ataques externos. Los desarrolladores, arquitectos de bases de datos y administradores de sistemas deben tomar precauciones antes de desplegar las aplicaciones PHP en un servidor en producción. La mayoría de estas técnicas se puede lograr con unas pocas líneas de código o un ligero ajuste en los parámetros de la aplicación.
#1 Script de InstalaciĂłn
Hoy en dĂ­a hay muchas aplicaciones web Open Source donde podemos crear un blog, un foro, una tienda e-commerce, incluso una red social,etc.. muchos sino todos traen unos script de autoinstalaciĂłn. Es muy aconsejable que despuĂ©s de instalar la aplicaciĂłn web las carpetas de instalaciĂłn se borren, yo no me complico y las borro sin pensarlo, pero otros desarrolladores prefieren mantenerlas, si alguien quiere hacer esto cuidado!
Esto es mi primera medida de seguridad, no parece tal, pero si lo es. Tengamos cuidado con los script de instalación porque si alguien consigue entrar en el autoinstalador después de que nuestra aplicación lleve funcionando un tiempo podría lanzar el autoinstalador nuevamente y borrar toda la base de datos.
Para los que quieran mantener la carpeta de instalaciĂłn deben incluir una protecciĂłn en el .htaccess para que controle sĂłlo el acceso a usuarios administradores o permitidos
1AuthType Basic
2AuthName "Solo administradores"
3AuthUserFile /usr/local/apache/passwd/passwords
4Require valid-user
Para cualquier usuario que acceda a la carpeta protegida le aparecerá un aviso para introducir usuario y contraseña. SĂłlo se permitirá el acceso a los usuarios especificados en el archivo “passwords”. El path de este archivo se puede cambiar, pero siempre debe ser un path seguro.
Para crear un usuario permitido y añadirlo a nuestro archivo podemos utilizar el siguiente comando de linux
1# htpasswd -c /usr/local/apache/passwd/passwords pedro
Más informaciĂłn: Tutorial proteger directorios con password en .htaccess
#2 Include de archivos
En muchos casos, los desarrolladores pueden utilizar un archivo individual en varias partes de una aplicaciĂłn. Estas secuencias de comandos contendrá una directiva “include” que incorpora el cĂłdigo del archivo individual en el de la página de origen. Cuando archivo “include” contiene informaciĂłn confidencial, incluyendo nombres de usuario, contraseñas o claves de acceso de base de datos, el archivo debe tener una extensiĂłn “. php”, en lugar del tĂ­pico “. inc”
Con la extensiĂłn “.php” nos aseguramos que el motor de PHP procesará el archivo y evitará los puntos de vista no autorizados.
# 3 Codificaciones MD5, SHA y algoritmo bcrypt
MD5 Y SHA están obsoletas. Aunque se sigan usando en algunos casos no es aconsejable usarlas. Por lo menos por sí solas.
Todas las páginas que tienen usuarios y contraseñas, éstas deben estar encriptadas. MD5 encripta las contraseñas con una cadena de 128 bits, mientras que SHA-1 lo hace con una cadena de 160 bits, pero ambas están obsoletas y no presentan una seguridad fiable.
La mejor opciĂłn es usar un algoritmo del tipo bcrypt y hay una librerĂ­a que aporta una estupenda Clase para crear contraseñas o cualquier tipo de texto encriptado de una manera segura http://www.openwall.com/phpass/
Obviamente, hay que tener cuidado con las contraseñas y Ă©stas no deben ser evidentes, secuenciales o muy simples. Muchas webs ya incorporan pequeños algoritmos para comprobar la existencia de nĂşmeros, letras y caracteres especiales  para “medir” la fuerza o seguridad de la contraseña.
Lectura recomendada: Seguridad en contraseñas. Como hacer una contraseña segura.
# 4 Captchas de Seguridad
Los captchas de seguridad nos ofrecen una barrera de seguridad contra scripts de fuerza bruta para probar masivamente contraseñas sobre un formulario, así como para verificar que quien está enviando el formulario es una persona y no una máquina o un bot con un script automático.
Los captchas de seguridad son usados en muchísimas páginas y algunas tan importantes como Facebook, Google, etc.. no debemos darle la espalda al uso de los captchas para añadir un nivel de seguridad a nuestros formularios.
Otros artĂ­culos sobre captcha de seguridad en este blog
  • Captcha de seguridad en cakePHP con Securimage
  • Instalar un captcha de seguridad
Tags de bĂşsquedas:
seguridad php,seguridad en php,php seguridad,seguridad para acceso a mi web,seguridad de acceso con php,que medidas preventivas se deben formar en cuenta y no tener una leccion,que medidas de seguridad hay que tomar en cuenta sobre servidor de internet,que medidas de seguridad hay que tomar en cuenta sobre el servidor de internet,Protocolos de seguridad a tener en cuenta Internet,programar un administrador web seguro con php