Domingo, 04 Diciembre 2016 12:06

PHP 5.6 y las conexiones seguras SSL / TLS

A partir de la versión de PHP 5.6 se activa por defecto en todas las conexiones seguras SSL / TLS la verificación del nombre del host que coincida con el certificado y que este no sea autofirmado. Esto trae una mayor seguridad para las transacciones bancarias, información sensible, correos electrónicos, venta online, etc... ya que se comprueba que realmente la conexión segura sera realmente quien dice ser y no se pueda alterar por medio de un ataque “man in the middle”, capturar el trafico y asegurar que realmente donde estemos conectados sea quien dice ser.

Pero dicho esto existe algunos problemas por mala programación o por desconocimiento que puede provocar que algunas web dejen de forma correcta, como por ejemplo el envió de correo electrónico SMTPS, ya que al comprobar el nombre de certificado que este sea idéntico ya no se puede usar conexión LOCALHOST al servidor SMTP y se tiene que sustituir por el nombre del servidor, ejemplo: kvm9.srvdr.com

Este cambio también afecta a conexiones STARTTLS , FTPS, HTTPS y MYSQLS con lo cual es bueno revisarlo todo y tener unos certificados de seguridad validos.

Como parche temporal mientras se tramitan los nuevos certificados se pueden desactivar la comprobación usando: verfiy_peer a false y allow_self_signed a true, con riesgo de perdida de seguridad en las comunicaciones o añadir los nuevos CA en caso de no poder adquirir certificados validos en la configuración global de PHP en openssl.cafile

Más información en:

http://php.net/manual/en/context.ssl.php

Roadmap de PHP:

http://www.php.net/supported-versions.php

 

Publicado en Seguridad

Normalmente en un servidor web normal del tipo apache, nginx o similares para descubrir desde cual IP nos están accediendo a la web, con obtener el valor de la variable de estándar 'REMOTE_ADDR' nos dará el valor correcto. Pero esto no siempre es cierto, puede suceder que se haya implementado en el servidor una cache para mejorar el rendimiento y el posicionamiento SEO por reducir el tiempo de respuesta, activando un Proxy inverso (Reverse Proxy) o un balanceador de carga con keealived, con esto conseguimos que las paginas o ficheros mas utilizados sean almacenados en una cache en memoria mejorando sustancialmente el tiempo de respuesta, nosotros utilizamos SQUID como cache para dicho propósito pero existen otras igual de efectivas como varnish o incluso nginx.

Con modificar nuestra programación PHP con estas simples lineas podemos controlar también cuando la IP pasa a través de un PROXY.

Ver código
  1. <?php
  2.     if(!empty($_SERVER['HTTP_CLIENT_IP']))
  3.     {
  4.       echo $_SERVER['HTTP_CLIENT_IP'];
  5.     }
  6.     elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
  7.     {
  8.       echo $_SERVER['HTTP_X_FORWARDED_FOR'];
  9.     }
  10.     else
  11.     {
  12.       echo $_SERVER['REMOTE_ADDR'];
  13.     }
  14. ?>


Existen casos especiales como en virtuemart 2.0 que el sistema de pago paypal genera un error por detectar de forma incorrecta la IP de origen:

Error code 506. Possible fraud. Error with REMOTE IP ADDRESS = 127.0.0.1.
The remote address of the script posting to this notify script does not match a valid PayPal ip address

En INODE64 hemos realizado un pequeño parche que soluciona este problema. Ya lo hemos reportado en el foro, pero aun la versión 2.6.6 aun no lo tiene aplicado.

icon paypal_proxy.diff (2.9 kB 2014-07-20 00:01:35)

Publicado en Código en Joomla

Buscamos un perfil de programador WEB en PHP

Requisitos:

  • Programación en PHP

  • Ultimas tecnologías web HTML5, CSS3, Jquery, AJAX

  • Vivir en las proximidades de Vila-real

Se valorara:

  • Conocimientos de Joomla

  • Vehículo propio

  • Linux

Ofrecemos:

  • Contratación inmediata

  • Formación continua

No envías el Curriculum Viate indicando “Programador WEB” en las notas

http://www.inode64.com/oferta-de-empleo

Para poder agilizar el proceso de selección hemos ideado un pequeño test antes de la entrevista personal, ya que la ultima selección de personal recibimos bastantes ofertas y muchas de ellas eran personas que no sabían ni programar.

Consiste en coger el código de uno de nuestros scripts y añadir una funcionalidad (añadir el soporte para modulo o de plugin) encontrar un bug o cualquier otra cosa.

http://www.inode64.com/codigo/joomla/componente-content_fake-para-la-creacion-de-contenidos-falsos

 

 

Luego seria enviar el código y explicar los cambios, como se ha realizado, tu valoración, etc...

Se valorara tanto la claridad, simpleza y las tecnologías utilizadas.

Realmente tienes que intentar demostrar tus mejores habilidades y la agilidad de comunicar tus ideas ante un reto desconocido.

Publicado en Blog
Lunes, 10 Septiembre 2012 22:13

Joomla 1.5 y el error de mail TLS

En la versión de Joomla 1.5 se usa para enviar el correo electrónico el script phpmailer 2.0.4 del 2009, esta versión en concreto no funciona el envió de correo si se selecciona en la Configuración global, TLS en SMTP Security. Y por otra, los grandes ISP (google, outlook, etc.. ) obligan a usar encriptación para enviar emails autenticados, con lo cual nos aparece en la pantalla del navegador el mensaje de Joomla.

 

¡Error SMTP! No puedo conectar al hospedaje SMTP.

 

 

joomla15tls2

 

Tanto desde el frontend como desde el backend

La solución consiste en activar la seguridad SSL y poner el puerto 465

 

Realmente el problema es de la forma que usa phpmailer la conexión del socket.

Ver código
  1. fsockopen("ssl://smtp.gmail.com", 465, $errNum, $errStr, 30); // Correcto
  2.  
  3. fsockopen("tls://smtp.gmail.com", 587, $errNum, $errStr, 30); // Error SSL3_GET_RECORD

Mirar este ejemplo mas descriptivo de la correcta implementación TLS.

Publicado en Joomla