programacion

Seguridad en aplicaciones con php

He recibido una pregunta en el foro de PHP sobre la seguridad en las aplicaciones que se realizan en PHP y creo que es mucho mejor y más completo responder con una entrada en el blog en vez de en el foro... por aquello de aumentar la difusión.

Bien, para tener una aplicación PHP segura debes:

  • Inicializar todas las variables que uses
  • Verifica todas las entradas en la base de datos
  • Separa el código PHP de la estructura HTML
  • Desconfia en las comprobaciones en la parte del cliente (javascript, ...)

Configuraciones importantes de PHP.INI

Revisando la configuración de PHP en linux para empezar a migrar a PHP5 todas las aplicaciones que he ido desarrollando a lo largo de estos años me he dado cuenta que siempre tengo en cuenta las mismas directivas de configuración. Para ello vamos a personalizar el archivo php.ini

engine
Activa o desactiva el módulo de PHP. Tiene que estar en 'on'
expose_php
Oculta o muestra la información que puede comprometer la seguridad del servidor, versión, extensiones, ...
max_execution_time

Consejos para programar

Últimamente me estoy centrando un poco en el mundo de la programación, refrescando conocimientos y perfeccionando algunos lenguajes de programación por eso vamos a ver algunos consejos para aprender a programar en cualquier lenguaje de programación.

Empieza por el principio

Listado de editores de texto para programar

Ya hemos hablado en alguna ocasión de los editores de texto para programar pero siempre hay gente que pregunta o pide consejo sobre algún editor en particular y es por eso que os voy a dejar un listado más desglosado de algunos editores de texto, muy comunes y multiplataforma, con los que podremos empezar a programar.

Includes vs Functions

Estoy retomando el tema de la programación en PHP después de varios meses sin tocar nada de código, salvo los conceptos básicos de java, y me estoy fabricando mi propio framework para desarrollar en php, para tener una plantilla muy genérica y poder afrontar cualquier propuesta con un diseño preestablecido y con una codificación previa que me permita olvidarme del diseño y estructura y me centre en la codificación de las funciones y los algoritmos necesarios.

Razones para usar convenciones en tu código

Cuando empiezas a programar, con cualquier lenguaje, sueles nombrar variables, funciones y procedimientos como quieres sin tener en cuenta la escalabilidad de tu proyecto o de las posibles revisiones por parte de terceros que puedas tener. Por eso, es interesante que tengas presente estas razones para usar convenciones en tu código para adquirir buenos hábitos en la programación.

  • El 80% del coste del código de un programa va a su mantenimiento
  • Casi ningún software lo mantiene toda su vida el autor original

Arquitectura orientada al servicio

El modelo de arquitectura orientada al servicio, modelo SOA (Service-Oriented Architecture) propone la construcción de aplicaciones basándose en la composición de los servicios 'disponibles' que pueden procesar y generar eventos y pueden invocar o ser invocados por otras aplicaciones.

El modelo conceptual de los servicios web

El modelo de los servicios web propone la existencia de un intermediario de servicios, que facilita su publicacion y localización. El intermediario proporciona la información necesaria para descubrir los servicios, describirlos, invocarlos y manejar los resultados del mismo.

  • El proveedor de servicios. Es el encargado de construir el servicio y describir su funcionalidad e interfaces, acorde a los estandares de los servicios web. además es el responsable de su publicacion en un registro público o privado.

Tecnologías web services

Las tecnologías de servicios web se fundamentan en 2 pilares:

  • En un modelo de arquitectura orientada al servicio, que permite construir aplicaciones de nivel superior mediante la composición de componentes que ahora son servicios de nivel inferior
  • En la definición de estándares abiertos para la comunicación de aplicaciones distribuidas, cuyos componentes son ahora servicios que realizan funciones especificas de negocio.

Web Services

Hablemos de web services.

Se puede definir un webservice como los componentes software que ejecutan procesos so funciones de negocio significativos, con una interfaz claramente definida y accesible a traes de internet, basada en el intercambio de documentos electronicos en formato XML y que se pueden combinar entre si.

Teniendo en cuenta esta definición se puede definir las claves de estos servicios como:

Estandarización

Tienda de música online