Hemos procedido a la actualización automática de todas las cuentas que tenían wordpress instalado, de la versión 3.5.2 a la nueva 3.6
Categoría: Desarrollo web
Moodle, tus propios cursos
Moodle es un sistema de gestión de cursos, de distribución libre, que ayuda a los educadores a crear comunidades.
Permite a los profesores la gestión de cursos virtuales para sus alumnos o la utilización como un espacio de apoyo.
Una de las ventajas de Moodle es que fomenta el grupo al mismo tiempo que permite la conversación privada entre los estudiantes. El docente prepara una serie de preguntas y las plantea durante la realización del encuentro con sus estudiantes. Todos los participantes pueden contribuir simultáneamente mientras el sistema los identifica automáticamente y al finalizar aparece una transcripción completa.
phpBB crea tu foro
phpBB es un sistema de foros gratuito con amplia posibilidad de personalización ¡Crea tu propia comunidad!
Características
- Gratuito y de código abierto.
- Creación ilimitada de foros y subforos
- Uso de caché para todos los archivos del foro
- Registro de usuarios y personalización de cada campo
- Mensajes privados a múltiples usuarios y carpetas de mensajes
- Búsqueda de temas y usuarios
- Panel de administrador y de moderador por separado
- Creación de encuestas con múltiples opciones
- Perfil para cada usuario con sus datos personales
- Aplicar Ban por tiempo definido o indefinido
- Los usuarios pueden tener amigos o Ignorados, los mensajes de ignorados son ocultados automáticamente
- Personalización de BBCode
- Creación de grupos de usuarios, moderadores o administradores
- Advertencia y reportes por usuarios a moderadores ante posts indebidos
- Poder crear nuevos campos para el perfil de usuario
- Poder editar, desde el panel de administración, los archivos del Tema usado
- Múltiples archivos adjuntos
- Mods y estilos gratuitos desarrollados por la comunidad
- Fácil creación y asignación de rangos por posts o por grupos
- Log de acciones de usuarios, moderadores y administradores
- Respaldo y restauración de la base de datos a través del panel de administrador
Actualizaciones automáticas sin coste
Desde hoy, pasamos a ofrecer como un añadido más en todos los planes, la actualización automática de tus gestores de contenidos. De este modo, mejoraremos la seguridad de todos los servidores así como te facilitaremos el día a día.
El único requisito es que hayas realizado la instalación utilizando Softaculous de tu panel de control.
Y por supuesto, mantenemos los precios.
Cómo deshabilitar PHP Magic Quotes
Magic Quotes es una opción que está dejando de tener desarrollo en PHP 5.3.0 y será finalmente abandonada en la PHP 5.4.0.
Actualización 31/07/2013 : desde hoy, todos nuestros servidores pasan a tener desactivado Magic Quotes.
Si tu web basada en Joomla/Prestashop o cualquier otro gestor de contenido, necesita que las desactives, puedes hacerlo creando un fichero de texto vacío llamado php.ini y copiándolo en /public_html/install con el siguiente contenido:
; Disable PHP magic quotes magic_quotes_gpc = Off magic_quotes_runtime = Off magic_quotes_sybase = Off ; Load PDO MySQL extension extension=pdo.so extension=pdo_mysql.so
Prestashop, comercio electrónico
PrestaShop es el sistema libre utilizado por la mayoría para montar su tienda de comercio electrónico. Incluye más de 310 funcionalidades totalmente gratis.
Gestión de Inventario
Administra eficazmente un gran número de productos con cargas y actualizaciones amplias. Haz cambios a los atributos del producto de una manera fácil con tan sólo hacer un clic o cambia productos individualmente. PrestaShop viene equipado para tomar una lista de productos del fabricante y cargar el archivo completo directamente al carrito de compras. Carga fácilmente archivos Excel y mira cómo su tienda toma vida.
Exportación de Productos a eBay y Otros
Crea un nuevo canal de ventas al colocar tus productos en listas externas como eBay, Amazon, Google Shopping, y muchos más. Consigue una mayor exposición a nuevos visitantes y mejora el ranking en buscadores.
Venta Cruzada
La venta cruzada ofrece a los clientes productos o servicios relacionados entre sí. Al combinar artículos en una página, puedes ofrecer más opciones para los clientes. La venta cruzada incrementa la tasa de conversión y ofrece una gama más completa de productos.
Productos, Categorías y Atributos Ilimitados
Al organizar los productos en categorías, los clientes pueden navegar rápidamente y encontrar lo que buscan. Un producto puede ser vendido en diferentes colores, tamaños, estampados, materiales y mucho más. Fija tus propios atributos para un gran número de productos o para cada producto individualmente y estos estarán disponibles para los clientes inmediatamente. Precio,peso y otras especificaciones pueden ser ajustadas dinámicamente basados en su selección.
Hosting WordPress
Crear una página web gratis hoy en día es muy sencillo. Hay tantas opciones que lo complicado es elegir una que nos de solución a nuestras necesidades.
Existen multitud de constructores webs de empresas privadas a modo de asistentes paso a paso. Por lo general, tienen pocas opciones para facilitar su uso y a nivel de diseño es limitado. Eliges tu diseño, pones el contenido y le das publicar.
Pero ¡ojo! Todo el tiempo que le dediques a un constructor o asistente web privado lo perderás si quieres cambiar de proveedor.
¿Por qué dedicar tiempo a aprender un sistema privado cuando hay miles de sistemas libres? Y además, hay uno que sobresale del resto en cuanto a uso a nivel mundial, se llama WordPress.
¿Qué es WordPress?
WordPress es un sistema pensado inicialmente para la creación de blogs, que poco a poco ha ido evolucionando para ser el sistema más completo para la creación de todo tipo de webs.
Es muy sencillo de manejar, tiene millones de añadidos, diseños y sistemas que puedes poner y quitar a modo de plug-ins. Y lo mejor de todo es que es libre, puedes modificarlo como quieras, y alojarlo en el proveedor de hosting que prefieras.
Su instalación en Honesting es muy sencilla:
- Entra en el panel de control de tu Hosting (Direct Admin).
- Busca la opción que pone Softaculous.
- La primera opción que te saldrá es WordPress.
- Haz click en Instalar.
- Rellena los campos de usuario/contraseña que quieras tener para la parte de administración de la web.
- Como carpeta inicial déjalo en blanco, de esa forma se instalará directamente en el dominio.
- Haz click en Instalar.
En unos segundos, tendrás tu web instalada con una zona privada de administración.
La administración es sencilla y sus secciones se describen por sí mismo. Ahora ya puedes empezar a añadir contenido, modificar diseños y mucho más, todo desde la sencillez de un navegador web.
WordPress es la base ideal desde la que desarrollar tu negocio en Internet, crece contigo, desde los primeros pasos hasta webs con millones de visitas.
Es el sistema utilizado en Honesting.es desde el año 2002.
¿Cómo modificar los valores PHP por defecto?
Al crear tu página web, es posible que necesites modificar los valores que utilizamos para todas las páginas web y cambiar algunos límites de PHP.
Gracias a la configuración de los servidores, puedes hacerlo fácilemente siguiendo estas instrucciones:
- Crea un fichero de texto vacío llamado .user.ini y súbelo a la carpeta /public_html de tu dominio.
- Añade los valores que quieras modificar.
Ejemplo de un fichero .user.ini que modifica los valores PHP por defecto:
post_max_size = 256 M
upload_max_filesize = 128 M
set_time_limit = 3000
max_input_vars = 5000
Para saber qué valores puedes editar con el fichero .user.ini puedes consultar la lista de directivas de php. Los que aparecen en la columna de Changeable como PHP_INI_PERDIR y PHP_INI_USER se pueden modificar.
Recomendaciones
Aumenta el valor sólo hasta lo que necesites, poner números muy altos puede interferir negativamente con el correcto funcionamiento de tu web: haciendo que cargue más lenta, genere errores, etc.
Borra el fichero .user.ini una vez hayas terminado de realizar el trabajo.
.user.ini reemplaza el uso de los antiguos ficheros .php.ini, si encuentras algún fichero .php.ini viejo en tu espacio, puedes borrarlo ya que no se tiene en cuenta.
Asegúrate de que el fichero .user.ini no tiene ninguna extensión tipo .txt o .doc.
En caso de dudas, consulta con tu programador web o contrata uno de los bonos de horas para que hagamos el cambio en tu cuenta.
Evitar spam en formularios PHP
Los formularios de los sitios web que se procesan y se envian a una dirección de correo electrónico pueden ser aprovechados por los «spammers» para hacer envios masivos de «spam» utilizando los servidores de correo y la IP de la maquina en la que se aloja el dominio. En este manual vamos a ver como podemos hacer que nuestros formularios sean un poco más seguros, evitando los ataques del tipo «email injection» a los que muchos formularios son sensibles.
1. En que consiste el «email injection»
Un ataque a un formulario del tipo «email injection» consiste en que el «spammer» aprovecha un formulario de un sitio web para «inyectar» cabeceras de email con direcciones y contenidos diferentes a los establecida en el formulario. Un «spammer» puede, a través de la inyección de cabeceras cambiar tanto el mensaje enviado, como los destinatarios, utilizando nuestro servidor de correo y nuestra maquina y nuestro dominio como emisor del mensaje, con lo que seremos nosotros los que estaremos haciendo «SPAM», y el rastro hasta el «spammer» se pierde.
Aquí tenemos un correo de ejemplo:
To:direccion@destinataria.com
Subject:Motivo del mensaje
From:direccion@emisora.com
Este seria el cuerpo del mensaje.
Dicho esto, la técnica utilizada por el spammer es incluir y/o alterar las cabeceras del mensaje por las suyas propias, antes de que se produzcan 2 saltos de línea, y por tanto, comienze el cuerpo del mensaje. Si el spammer consigue alterar o introducir sus cabeceras, los destinatarios y el cuerpo del mensaje se pueden alterar. Asi por ejemplo, si tenemos el siguiente correo:
To:direccion@destinataria.com
Subject:Motivo del mensaje
From:direccion@emisora.com
To:nuevadireccion@destinataria.com
Cc:otradireccion@spameada.com
Subject:Nuevo subject del mensaje spameado
Texto introducido por el spammer.
Este seria el cuerpo del mensaje.
Observamos que después del «From:» original, el «spammer» ha añadido un nuevo «To:» y otras direcciones de correo con la etiqueta «Cc:». También ha introducido un nuevo texto en el cuerpo del mensaje. El hecho de que haya 2 cabeceras «To:», o 2 «Subject:», no supone ningún problema. En la mayoría de los casos, si una cabecera se define 2 veces, la última es la que se tiene en cuenta.
Un correo básico se compone normalmente de 2 partes: las cabeceras, y un cuerpo del mensaje. Sin embargo, utilizando cabeceras especificas a tal fin, un correo pude tener varios «bodys» o cuerpos de mensaje alternativos. Por simplificar analizamos aquí la estructura de un correo básico.
2. Como puede el spammer inyectar cabeceras en la función mail() de PHP
La función que habitualmente se utiliza en PHP para enviar a una dirección de correo electrónico los datos de un formulario será mail(). La sintáxis de esta función es la siguiente:
- mail (To, Subject, Mensaje, Headers, Parametros_Adicionales);
El siguiente es un script de ejemplo básico de un formulario que se enviará a una dirección de correo:
- $to=»webmaster@website.com»;//direccion destinataria «hardcoded»
if (!isset($_POST[«send»])){
// si no vienen datos-> mostrar el form
?>To: webmaster@website.com
From:
Subject :
Message :}else{
// si vienen datos POST.. procesamos y enviamos los datos del form
$from=$_POST[’sender’];
// send mail :
if (mail($to,$_POST[’subject’],$_POST[’message’],»From: $from\n»)){
// si se ha enviado correctamente mostramos un mensaje de OK
echo «Su mensaje se ha enviado correctamente a $to.»;
}else{
// Se ha producido un error
echo «Su mensaje no se ha podido enviar»;
}
}
?>
En el ejemplo anterior, mostramos un formulario de contacto donde el usuario puede incluir el From, el Subject del Mensaje y el Mensaje. El destinatario «To:» esta «hardcoded» y en principio un usuario no tiene la opción de alterarlo. Sin embargo, esto no nos garantiza nada tal y como hemos visto anteriormente. Un usuario spammer, aprovecharía el campo «From:» para introducir sus propias cabeceras. Solo tiene que añadir un salto de línea al campo del formulario e insertar otras cabeceras. El caracter hexadecimal «%0A» es el equivalente a un salto de línea. Por tanto, si el spammer introduce en el campo «From:» el siguiente contenido:
- direccionFrom@ficticia.com%0ATo:nuevadireccion@destinataria.com%0ACc:otradireccion@spameada.com%0ASubject:Nuevo subject del mensaje spameado%0A%0ATexto introducido por el spammer en el cuerpo de texto.
Cuando se procese el formulario, las “headers” maliciosas llegarán a la función mail() y gracias a los saltos de línea introducidos en el campo From. Los últimos 2 saltos de línea marcan el comienzo del “body” y a partir de ahí, todo lo demas formará parte del cuerpo del mensaje. En nuestro ejemplo, el spammer no necesita hacer esto último, ya que tiene un campo en el que puede introducir su propio mensaje, pero esta técnica muestra como se puede alterar hasta el cuerpo del mensaje una vez que podemos inyectar nuestras propias cabeceras. El mensaje de correo que devolverá la función mail() será el siguiente:
To:direccion@destinataria.com
Subject:Motivo del mensaje
From:direccion@emisora.com
To:nuevadireccion@destinataria.com
Cc:otradireccion@spameada.com
Subject:Nuevo subject del mensaje spameado
Texto introducido por el spammer en el cuerpo de texto.
Este seria el cuerpo del mensaje.
Que como vimos anteriormente, produce un envio a direcciones diferentes de las previstas, y con otro Subject y Body. Logicamente, el spammer puede introducir tantas direcciones separadas por comas como quiera, con lo que en un simple envio pueden salir cientos de correos SPAM desde nuestro formulario.
En formularios más restrictivos, en los que el cuerpo del mensaje esta «hardcoded» y no se coge desde un campo del formulario, el spammer puede añadir una cabecera del tipo: «Content-Type: multipart/mixed; boundary=»SeparadorDePartes», que permitiría crear un mensaje multi-partes. En un mensaje del tipo «multi-partes», se establece una cadena como «separador» que marcará donde comienza y termina cada parte. Asi, «–SeparadorDePartes», marca el comienzo de una nueva parte del mensaje, que terminará cuando se encuentre nuevamente otro «–SeparadorDePartes» que indique el comienzo de otra parte. Finalmente, «–SeparadorDePartes–» con dos guiones al final, marcaría el final del cuerpo del mensaje.
Utilizando esta cabecera y otras similares, un spammer puede ocultar el cuerpo del mensaje originalmente establecido, dejandolo fuera del separador que marca el fin del body. También podría utilizar esta técnica para añadir ficheros adjuntos, ya que cada una de las partes puede tener su propio «Content-Type», y por tanto podemos hacer que una de las partes sea una imagen o un fichero binario, como se puede ver en esta ejemplo de «email injection» avanzado.
Soluciones
Después de habernos extendido en la explicación del problema, con el fin de que quede claro como se produce, podemos sentir un poco de pánico, aunque en realidad la solución o soluciones (hay varias) son bien sencillas.
Detectar los saltos de línea con expresiones regulares
La más abordable inicialmente es proteger nuestro script para que no le lleguen cabeceras indeseadas. Hemos de tener especial cuidado en todos aquellos campos de un formulario cuyo destino sea el parametro «headers» de la función mail(). En nuestro ejemplo básico el «From:». En lugar de pasarlo directamente, tendremos que hacer una comprobación sobre estos campos y asegurarnos que no vienen saltos de línea, en cuyo caso podemos estar sufriendo una «email injection» y podemos detener el script:
$from = $_POST[«sender»];
$from = urldecode($from);
if (eregi(«\r»,$from) || eregi(«\n»,$from)){
die(«Posible email injection»);
}
?>
También es recomendable utilizar librerias como la Zend_Mail para enviar correos. Esta libreria realiza varias comprobaciones de seguridad antes de enviar el correo, de forma que el usuario no tiene que preocuparse por estos aspectos. Existen otras librerias para el envio de correos que también toman este tipo de precauciones. En cualquier caso, no es menos cierto que existen muchos más scripts hechos personalmente con usuarios poco o nada experimentados y que son el objetivo de los spammers. Para ellos va este Post, a ver si entre todos les ponemos las cosas un poco más dificiles a los spammers. Cuidado con los formularios del tipo «Send to a friend»
Es algo obvio pero como observo que todavía es una practica extendida veo aconsejable recordar lo siguiente. Las medidas de seguridad mencionadas en este manual le protegen o tratan de hacerlo del uso pernicioso que algunos spammers pueden hacer de un formulario previsto con otra funcionalidad.
Sin embargo, poco o nada se puede hacer con algunos formularios del tipo «send to a friend» o «enviar a un amigo» que no han observado la más mínima medida de seguridad. Me refiero a esos formularios que permiten a un usuario anónimo rellenar un formulario en el que todo se puede establecer: El «To:», el «From:», el «Subject:» y el «Body:». Estos formularios pueden ser utilizados como proxies de correo por cualquiera, «spammer» o no. Cualquiera puede enviar un correo a la dirección que quiera, con el subject que quiera, el cuerpo del mensaje que quiera, y simular la dirección desde que lo enviará que quiera, y sin necesidad de utilizar ninguna técnica ni hack para inyectar cabeceras.
En fin, se que es una obviedad, pero había que comentarlo porque hay muchos formularios así. No utilize NUNCA este tipo de formularios sin tomar precauciones obvias de seguridad. Aseguese al menos de que el «From:» no puede ser establecido por el usuario, enviando los correos desde una dirección «fija». Limite las posibilidades de introducir un «Subject:» o un «Body:» personalizado y siga las reglas de filtrado explicadas en este post para evitar ataques «email injection».
Para seguir leyendo :
* https://www.securephpwiki.com/index.php
* https://blogs.pathf.com/highperf/2006/05/php_spam_inject.html
Como Trabajar Correctamente con PHP
Trabajar con PHP implica tener ciertos conocimientos avanzados en cuanto a configuración y puesta en marcha de los scripts.
Existen Scripts los cuales precisan la activación de ciertos parámetros del lado del servidor los cuales no estan activos por defecto ya que hoy en dia no son usados, demandan demasiados recursos, o bien son inseguros; sin embargo los podras activar e implementar bajo tu plena responsabilidad. Uno de los parámetros no activos por ya no ser muy usados es register_globals, sin embargo algunos scripts antiguos que pululan por la red requieren su activación.
PASO 1
En la carpeta public_html existe un archivo especial llamado .htaccess en el cual insertaremos las instrucciones necesarias especificas para este tipo de archivo, como ejemplo activaremos el register_globals: php_flag register_globals on luego guardamos y ahora si ya estará activo el párametro, de la misma manera si necesitamos activar mas parámetros lo haremos desde ahí.
¿Que pasa al instalar PHPSuexec?
La mayoría de los usuarios no notarán el cambio en el funcionamiento de su página Web, ya que seguirá funcionando todo tal y como les funcionaba antes del cambio, los únicos que tendrán problemas serán los alojamientos que utilicen el .htaccess para unas determinadas cosas, que explicamos posteriormente, y los que tengan permisos en alguna carpeta o en algún fichero 777.
Problemas con .htaccess
Los alojamientos que utilicen .htaccess para activar las register globals, con PHP_FLAG, aparecerá un error 500 al abrir la página, para solucionar esto, es decir, para activar las register globals con SUEXEC, lo tendrán que hacer a nivel de directorio, es decir, las register globals se tienen que activar para cada directorio del alojamiento, hay que crear un archivo llamado php.ini que contenga la siguiente línea:
register_globals = On;
Los .htaccess que contengan valores para PHP_VALUE también darán error 500 en la página, debido a que con SUEXEC no es posible usar ese tipo de directivas.
También generaran error los .htaccess que contengan la directiva ForceType, la cual hay que sustituir por SetHandler, por poner un ejemplo:
Antes de PHPSuexec:
ForceType application/x-httpsd-php
Con PHPSuexec debería cambiar por:
SetHandler application/x-httpsd-php
Problemas más comunes que pueden aparecer con php SUEXEC
Si con la implantación de php SUEXEC usted detecta fallos tipo 500 internal server error, lo primero que tiene que hacer es lo siguiente:
1.- Comprueba los permisos de los archivos y carpetas de tu alojamiento, no pueden superar ninguno los permisos 755, por defecto, todos los archivos subidos mediante ftp tienen los permisos 644, con los cuales funcionan la mayoría de los scripts, pero si algún script requiere de permisos más estrictos, con 755 deberían funcionar sin ningún problema.
2.- Asegúrate que tu .htaccess no contiene directivas tipo PHP FLAG/VALUE o ForceType, ya que estas directivas necesitan hacerse de otra forma tal y como se ha explicado en este manual.
PASO 1
En la carpeta public_html crear un archivo llamado php.ini en el cual insertaremos las instrucciones necesarias especificas para este tipo de archivo, como ejemplo activaremos el register_globals: register_globals = On; luego guardamos y ahora si ya estará activo el párametro, de la misma manera si necesitamos activar mas parámetros lo haremos desde aqui.
De esta manera se logra trabajar correctamente con los diferentes parámetros que requiere PHP.