Entradas

Mostrando las entradas etiquetadas como seguridad internet

Composer: allow_url_fopen, disable_functions, open_basedir

Imagen
En cualquier manual básico de seguridad en PHP se indica que las instrucciones  allow_url_fopen , disable_functions y open_basedir deben ser modificadas para impedir posibles brechas. El problema es que composer utiliza estas directivas de php.ini. Los posibles errores que nos pueden dar son los siguientes Phar::mapPhar(): open_basedir restriction in effect. File(/composer) is not within the allowed path(s) require(phar://composer.phar/bin/composer): failed to open stream: phar error: invalid url or non-existent phar "phar://composer.phar/bin/composer" is_dir(): open_basedir restriction in effect. File(/.composer) is not within the allowed path(s) Update failed (The Process class relies on proc_open, which is not available on your PHP installation.) [Symfony\Component\Process\Exception\RuntimeException] The Process class relies on proc_open, which is not available on your PHP installation. La forma menos segura para tratar estos errores es poner en peligro nu...

Asegurando nuestro servidor Apache

Imagen
Tan importante como asegurar y proteger nuestro código PHP es asegurar y proteger el servidor sobre el que corre, en la mayoría de los casos apache. En este fantástico tutorial en inglés nos dan 13 pautas para tener un servidor apache más robusto e incluso algo optimizado. Ocultar las versiones del sistema operativo y de apache. Quitar la posibilidad de listar directorios. Mantener siempre nuestro servidor apache actualizado. Eliminar módulos innecesarios. Tener un grupo y un usuario diferente que corran apache en entornos linux. Restringir el acceso a directorios. Utilizar los módulos security y evasive para evitar ataques de denegación de servicio. En este enlace tenéis como instalar mod_evasive en entornos xampp y en este encontrareis versiones para diferentes compilaciones de apache . No permitir los enlaces simbólicos . Des-habilitar la inclusión del lado del servidor y la ejecución de scripts CGI. Limitar el tamaño de las solicitudes. Protegernos de ata...

Asegurar PHP con php.ini

Imagen
En el post anterior vimos como podemos establecer las directivas de PHP para cada subdominio , ahora toca asegurar y proteger nuestro código PHP utilizándolo. Voy a remitiros a este fantástico manual en inglés en el cual dan las pautas para asegurar, proteger y endurecer nuestras páginas PHP con directivas de configuración que no vienen habilitadas por defecto. Modo seguro (obsoleto desde PHP 5.4) Restringir los directorios desde donde podremos incluir archivos PHP y trabajar con ficheros (escritura, lectura), en resumen limitar el acceso de PHP al sistema de archivos. Deshabilitar funciones peligrosas como eval. Evitar que se muestre errores en pantalla Deshabilitar register globals (obsoleto desde PHP 5.4) Evitar que archivos remotos puedan ser abiertos e incluidos con PHP, la consecuencia más drástica de esto es que la función file_get_contents no podrá recibir nada con el protocolo http como parámetro, en su lugar deberemos usar curl. Restringir la subida de archi...

Configurar PHP para cada subdominio

Por defecto, los ajustes del archivo de configuración de PHP (php.ini) se aplican a nivel global, por servidor si es dedicado o por usuario si es compartido. Muchas veces es posible que necesitemos sustituir esta configuración predeterminada para un subdominio o subdirectorio, para hacerlo debemos hacer lo siguiente: copiar el archivo php.ini a nuestro subdominio editar o crear un archivo .htaccess e incluir la siguiente línea SetEnv PHPRC. editar el archivo php.ini con las características que queramos. Con estos 3 pasos quedaría configurado un archivo php.ini para nuestro subdominio independiente de la configuración global de PHP pero este archivo sería visible con lo cual debemos protegerlo con el mismo archivo htaccess: <Files ~ "\.ini$"> Order allow,deny Deny from all </Files> Esto denegará cualquier solicitud web a cualquier archivo en ese directorio que termine en .ini; evitando así que la configuración de PHP pueda ser vista por otros. Ahora ...

El modo pasivo de FTP en PHP

Antes de cualquier explicación debemos saber las diferencias entre el modo activo y el modo pasivo en FTP. Podemos decir, resumiendo mucho, en modo pasivo las conexiones son siempre abiertas por el pc cliente , mientras que en modo activo se abren por el que envía los datos, el servidor si se trata de bajar archivos o información al pc local, el cliente si se trata de subir archivos al servidor. Tendiendo lo anterior en cuenta en el modo activo se abre una conexión para datos desde el servidor a la maquina cliente, esto es, una conexión desde fuera hacia dentro; si la maquina cliente está protegida por un firewall, este filtra o bloquea la conexión entrante al serle un proceso desconocido. En modo pasivo es el cliente el que inicia ambas conexiones, de control y de datos, con lo cual el firewall no tiene ninguna conexión entrante que filtrar. Por este motivo la razón de que algunas funciones de PHP nos funcionen en un servidor u otro con el mismo código no depende de la versión inst...

Firefox Error code: sec_error_unknown_issuer

Si cada vez que intentas acceder a una web con conexión segura SSL bajo https y te da el error This Connection is Untrusted es altamente probable que tu antivirus tenga algo que ver. En la siguiente imagen vemos el error al entrar acceder a la página principal de Facebook: es-es.facebook.com uses an invalid security certificate. The certificate is not trusted because no issuer chain was provided. (Error code: sec_error_unknown_issuer) Para corregir esto debemos ver el origen del error, el por qué. Pulsamos el botón para añadir una excepción que se encuentra debajo la parte inferior de la ventana al pulsar en entiendo los riesgos. En esta nueva ventana pulsaremos el botón para ver el certificado. Allí nos mostrará toda la información relacionada con el certificado de seguridad y podremos seguramente sacar el origen del error, en mi caso por ejemplo si. Lo que me llamó la atención es que estuviese el nombre de mi antivirus asociado al certificado con lo cual haciendo una b...

Actualizando contraseñas en MySQL

Desde hace unas cuantas versiones de MySQL la generación de contraseñas seguras ha aumentado , pero actualizarlas es un proceso bastante tedioso porque tiene que ser usuario por usuario en nuestra base de datos. Para compatibilizar con contraseñas antiguas existen dos instrucciones en el archivo my.cnf que nos permiten utilizar contraseñas menos seguras en sistemas más modernos y de esta forma no tener que actualizar uno a uno todos los usuarios, estas instrucciones son: secure_auth=1 old_passwords=1 Si queremos que MySQL se conecte utilizando contraseñas antiguas debemos tener la primera comentada y la segunda no. ¿Qué hacen estas instrucciones? secure_auth le dice al servidor de MySQL que solo permita conexiones seguras y old_passwords activado lo que le dice a MySQL que cada vez que se ejecute la función PASSWORD nos devuelva una contraseña en formato antiguo. Actualizando contraseñas en MySQL Si decidimos actualizar lo podemos hacer remotamente, no hay necesidad de conectarno...

Crear certificados digitales en Windows

Este manual se podría decir que es una actualización del artículo wiki crear e instalar certificados digitales en Apache HttpServer . Lo primero que debemos hacer es descargarnos la distribución de OpenSSL para Windows . Para los que no lo sepan y parafraseando a la Wikipedia decir que OpenSSL es un software open source para libre descarga que incluye un paquete de herramientas de administración y bibliotecas relacionadas con la criptografía, que suministran funciones criptográficas a otros paquetes como OpenSSH y navegadores web para acceso seguro a sitios con el protocolo HTTPS, herramientas que ayudan al sistema a implementar el Secure Sockets Layer (SSL). Una vez que hemos descargar OpenSSL debemos ejecutar el Símbolo del sistema y navegar hasta la ruta de instalación de este programa. Esto es muy importante porque de hacerlo desde otras carpetas nos puede dar un error del tipo 'openssl' is not recognized as an internal or external command, operable program or batch...

Bloquear programas en el Firewall de Windows 7

Aquí os dejo un pequeño tutorial para bloquear programas en el Firewall que vienen por defecto en Windows 7, realmente las opciones avanzadas del firewall de Windows no solo permiten bloquear programas sino que permiten una multitud de configuraciones sobre las cuales no trataremos pero que es cuestión de prueba y error hasta que tengamos nuestro sistema configurado a nuestro gusto. Lo primero que tenemos que hacer es ir a Inicio – Panel de Control - Sistema y Seguridad Pulsamos sobre Firewall de Windows Una vez allí en el lado izquierdo hacemos clic sobre Configuración Avanzada (recuerdo que hay que ser administrador para acceder a estas opciones) Una vez en las opciones avanzadas del Firewall de Windows pulsamos a la izquierda en dónde pone Reglas de Entrada Y una vez allí a la derecha hacemos clic dónde pone Nueva Regla , una vez pulsado este enlace se nos abre la ventana con el asistente para crear nuevas reglas del firewall de Windows; en la primera pantalla elegimos P...

Direcciones IP emisoras de SPAM

A partir de este mes intentaré publicar mensualmente una lista con las direcciones IPs emisoras de spam que detecte en todos los sitios web para los que trabajo. El listado irá organizado de mayor emisor a menor de spam. De esta forma podremos agregar estas direcciones ip en nuestros archivos htaccess para bloquearlas con la instrucción deny from ip . Sin más aquí os dejo el listado de marzo de 2011: Ataques Dirección IP Último ataque 78 91.201.66.97 2011-03-30 14:14:29 78 91.224.160.3 2011-03-30 13:06:42 61 91.201.66.98 2011-03-29 21:29:56 36 91.224.160.4 2011-03-29 11:58:10 35 91.201.66.76 2011-03-30 17:09:47 10 89.112.14.13 2011-03-30 06:28:33 10 188.143.232.120 2011-03-21 01:00:06 6 95.65.79.220 2011-03-19 15:28:08 6 95.65.77.99 2011-03-19 13:09:18 6 94.100.25.52 2011-03-26 16:22:39 ¿Os coincide alguna?

Tus datos personales en internet

Mis tarjetas de crédito están dadas de alta en unos cuantos sitios, algunos de dudable reputación por su nombre como quierounputomovil.com (excelente servicio por cierto) pero todos bajo un protocolo seguro https, lo que no entiendo es que aún nos parezca normal que empresas privadas nos pidan información referente a nuestras tarjetas y pretendan que se los enviemos por email o por fax. Estoy hablando del caso concreto de una empresa canadiense con sucursal en La Habana, la cual administra el sitio compradtodo.com , en el que se pueden recargar móviles en Cuba. Hasta hace poco días se podía hacer esto bajo un protocolo https pero concretamente el día 12 de abril recibí un correo de ellos en el cual me comentaban lo siguiente: Como parte  de las mejoras que se vienen realizando a Recarga Móviles en cuanto a seguridad; a partir del 15ro de Abril para ser usuario del servicio debe haber completado formulario adjunto y enviado debidamente firmado a la dirección: pedidos@com...