Chuleta de Blogger en Blogandweb

General, Recursos

David | 6/08/2009

Blogger-Cheat-Sheet

Blogger es la plataforma de blogging de Google. Tiene un sistema de plantillas muy personalizable que permite modificar la plantilla por completo, pudiendo usar el servicio de Google como alojamiento gratuito (y de alta disponibilidad) y utilizar un diseño 100% personalizado para nuetsro negocio, blog personal, etc.

En Blog and Web han realizado un cheatsheet sobre la creación de plantillas para blogger. Se encuentra en formato pdf y png (1,2). Muy útil a la hora de crear las plantillas.


Instalación de Joomla en un servidor de desarrollo

Joomla

Ranomo | 6/08/2009

Dashboard de Joomla!

En la entrega anterior vimos cómo instalar XAMPP en Windows, paquete que contiene todos los servicios necesarios para que funcione Joomla. Ya ha llegado pues el momento de proceder a la instalación del CMS.

Paso 1: Enviar Joomla a nuestro servidor local

Para conseguir la versión más reciente de Joomla podemos dirigirnos a la página de Joomla Spanish. Veremos como se nos ofrece en distintas extensiones, nosotros hemos bajado a nuestro ordenador la versión 1.5.14 en formato zip.

Ya hemos comentado anteriormente que  la raíz del servidor Apache se encuentra en C:\xampp\htdocs. Dado que podemos efectuar más de una instalación web, y para mayor claridad en la gestión de las mismas, crearemos una subcarpeta en la raíz llamada, por ejemplo, sitio01. La ruta será pues, C:\xampp\htdocs\sitio01 y su URL http://localhost/sitio01/.

En la carpeta que hemos nombrado sitio01 descomprimiremos el contenido de nuestro zip, de tal forma que, al concluir el proceso, habremos enviado todos los ficheros de Joomla a nuestro servidor local.

Por último, si no lo hemos hecho ya, arrancaremos el panel de control de XAMPP y verificaremos que se encuentran activos los módulos correspondientes a MySql y Apache. Seguir leyendo..


Lectura recomendada: 10 errores comunes en diseño web

En Kabytes han hecho un repaso de algunos de los errores más comunes que se suelen realizar a la hora de crear un sitio web. Muchas veces necesitamos una lista de este tipo para darnos cuenta de los errores que comentemos.
Por : David           Comentarios desactivados

Slideshow para jQuery o Scriptaculous: Horinaja

Javascript

David | 6/08/2009

horinaja-slideshow

Horinaja es un plugin que permite crear pases de diapositivas (Slideshow) de una manera muy sencilla. Tiene versión tanto para jQuery como para Scriptaculous. En el plugin se puede configurar si se muestra paginación o no, el tiempo de transición de una página a otra y el tiempo que tarda en realizarse la transición, entre otras cosas. El resultado es muy profesional y elegante.

El modo de uso es muy sencillo, se debe de crear un div al que añadirle la clase horinaja, y dentro de este div, crear una lista no ordenada (ul) . El ejemplo de código habla por sí solo.

Código HTML

<div id="demo" class="horinaja">
<ul>
	<li><!-- content 1 --></li>
	<li><!-- content 2 --></li>
...</ul>
</div>

Código Javascript

<script> 
 $(document).ready(function(){
   $('#demo').Horinaja({
       capture:'demo',delai:0.3,duree:4,pagination:true
       });
   });
</script>

Panorama, plugin de jQuery para introducir imágenes panorámicas con Javascript

Navegando por internet me he encontrao con este plugin de jQuery que permite introducir imágenes panorámicas. Se puede navegar por la imágen con el ratón, creando el efecto de que estamos girando la cabeza.
Por : David           Comentarios desactivados

Como proteger nuestros desarrollos en Joomla de ataques XSS

Joomla, Programación

David | 30/07/2009

hackers y joomla

La programación web es un mundo complejo e inseguro. La seguridad de nuestra aplicación depende de muchos factores que debemos tener en cuenta, desde la seguridad del servidor donde se aloja, hasta las técnicas de programación empleadas en esta.

Una de las vulnerabilidades que más se ha explotado útimamente han sido las basadas en ataques XSS (Cross Site Scripting), que consiste en inyectar código malicioso en un sitio web para que se ejecute automáticamente al abrirlo en el navegador.

Imagina por un momento que eres un Webmaster de una comunidad de usuarios y utilizas el CMS Joomla para administrarla. Imagina que usas un componente de terceros para administrar los roles de usuarios, etc.. algo muy común. Un buen día llegas a casa y abres una sesión como administrador de tu sitio, y te quedas logueado con la pestaña abierta. Ahora abres otra pestaña, y en esta pestaña hay un código Javascript que hace algo como lo siguiente:

window.location.href= "http://tuSitioJoomla/administrator/index2.php?option=com_users&amp;task=deleteall..."

Al estar logueado como administrador, si el componente no está debidamente protegido es posible que llegue a borrar todos los datos de nuestros usuarios, y nuestra amada comunidad se irá al garete en menos que canta un gallo. Si encima, estó lo combinamos con una política de copias de seguridad insuficiente o inexistente, nos encontraremos ante una situación bastante dificil de resolver y que seguro que nadie le gustaría vivir.

Esta técnica de construir consultas maliciosas aprovechandose de la sesión de un administrador es una rama del XSS denominada como CSRF(Cross Site Request Forgery).

Para evitar estos problemas de seguridad, el API de Joomla proporciona unos métodos interesantes cuya finalidad es comprobar que la petición se ha realizado desde un sitio seguro, y no la está relizando cualquiera. Estos métodos generan un Token, (en español testigo) que es único para cada sesión que se genera en el servidor. Este token es un conjunto de carácteres generados en base a tu dirección IP, hora y algunos parámetros variables, con el fin de dificultar o imposibilitar la recreación del mismo token por el atacante (que académico me ha quedado este párrafo ;-) ). Cuando recibamos los datos en el servidor, deberemos comprobar que el testigo se encuantra intacto en la petición, y que por lo tanto se puede garantizar la autenticidad de la petición, es decir, que esta petición la hemos generado nosotros y no la ha generado un script malintencionado. La implementación con el API de Joomla es muy sencilla. Si no tienes conocimientso sobre el API de Joomla es recomendable que te leas los tutoriales sobre desarrollo de extensiones en Joomla.

Método POST

Tenemos el siguiente formulario:

<form action="index.php" method="post">
 
	Nombre:
<input name="nombre" type="text" />
 
	Email destino:
<input name="email" type="text" />
 
	Cuerpo:
<input name="cuerpo" type="text" />
 
	<input type="submit" value="Enviar Email" />
        <?php echo JHTML::_( 'form.token' ); ?>
	<input name="option" type="hidden" value="com_prueba" />
	<input name="task" type="hidden" value="enviarEmail" />
</form>

Mediante el siguiente código:

<?php echo JHTML::_( 'form.token' ); ?>

se genera el token, que valida que realmente es el usuario el que ha enviado la petición. Después, en el task, se valida que el token sea correcto. El token, en este caso es un campo de tipo hidden con una cadena de caracteres aleatoria para cada sesión. Código generado con el Token A continuación se muestra el codigo del task enviarEmail.

   function enviarEmail(){
      JRequest::checkToken() or die( 'Token invalido' );
 
      echo "email enviado!!";
   }

Si todo a funcionado correctamente, se mostrará un mensaje por pantalla indicando que el email a sido enviado correctamente. En caso de que la petición haya sido creada desde un sitio diferente que no sea la página de administración de Joomla aparecerá un mensaje advirtiendonos que el Token es invalido, y se interrumpirá la aplicación. La comprobación la realiza el método checkToken, que genera el mismo Token y lo compara con el que viene desde el cliente, en caso de ser diferentes se cancela la ejecución del script.

Método GET

Para usar los tokens con el método GET se hace usando el objeto JUtility. A continuación se muetsra el código de una típica tabla donde se muestra una lista de usuarios con enlaces para borrar cada usuario, muy tipico.

<table border="0">
<tbody>
<tr>
  <td>
	David
  </td>
  <td>
	<a href="<?php echo JRoute::_( 'index.php?option=com_prueba&amp;task=eliminar&amp;usuario=David&'. JUtility::getToken() .'=1' ); ?>">Eliminar</a>
  </td>
</tr>
<tr>
  <td>
	Pepe
  </td>
  <td>
	<a href="<?php echo JRoute::_( 'index.php?option=com_prueba&amp;task=eliminar&amp;usuario=Pepe&'. JUtility::getToken() .'=1' ); ?>">Eliminar</a>
  </td>
</tr>
<tr>
  <td>
	Juan
  </td>
  <td>
	<a href="<?php echo JRoute::_( 'index.php?option=com_prueba&amp;task=eliminar&usuario=Juan' ); ?>">Eliminar</a>
  </td>
</tr>
</tbody>
</table>

La orden de borrar se envía al task eliminar. A continuación se muestra el código.

	function eliminar(){
		JRequest::checkToken( 'get' ) or die( 'Token invalido' );
		echo "Usuario eliminado!!";
	}

Una vez introducida la protección en el task, si alguien intenta enviar una dirección del estilo “index.php?option=com_prueba&task=eliminar&usuario=Juan”, obtendrá el mensaje “Token invalido”, de hecho, si intentas eliminar a Juan, como no se le ha introducido el token, dará error y no será borrado.

Conclusión

Usando este método solventaremos casi todos los problemas de Cross Site Request Forgery y spoofing que nos podamos encontrar, y es muy recomendable (yo diría que obligado) utilizar está tecnica, que resulta muy sencilla y fácil de implementar. Descargar código de componente con el ejemplo.

Vía Documentación oficial de Joomla


Recopilatorio de recursos y tutoriales sobre Mootools por w3avenue y Smashingmagazine

Javascript, Recursos

David | 29/07/2009

w3avenue

Mootools es el framework Javascript incluido en Joomla y aunque no es tan popular como jQuery, es de gran calidad y tiene una comunidad, no tan grande como la de jQuery, pero bastante extensa. Hoy me he encontrado con dos recopilatorios de gran utilidad.

  1. List of Really Useful Plugins and Resources For MooTools, un recopilatorio de plugins para Mootools 1.1 y 1.2 realizado por w3avenue. Se pueden encontrar todo tipo de plugins para usar en nuestros proyectos.
  2. MooTools Tutorials and Resources Round-Up, en esta ocasión Samshingmagazine dedica uno de sus super-recopilatorios de recursos y tutoriales a Mootools, hace poco dedicó uno a Joomla.

Dos buenas referencias para tener a mano, sobre todo si se está pensando en hacer plantillas para Joomla y se las quiere dotar de algo de interactividad.


Lectura recomendada: lista de herramientas útiles para desarrolladores CSS

W3avenue ha publicado una recopilación de herramientas que nos puede venir muy bien a los que nos dedicamos al desarrollo con tecnologías web XHTML/CSS.  En la lista se incluyen desde aplicaciones online hasta extensiones de Firefox o aplicaciones de escritorio. Echar un ojo a la lista y seguro que encontráis algo que os sirva.
Por : David           Comentarios desactivados