Lo primero de todo explicaros que Zend Optimizer es un framework para acelerar la intepretación de php, además posee la capacidad de traducir scripts codificados con Zend Guard. Podriamos decir que Zend optimizer es indispensable para optimizar nuestro servidor apache y si eres administrador de sistemas o posees un servidor dedicado esta guia te será de mucha utilidad.

En pocas palabras, nos permite disminuir el tiempo de ejecución de los scripts entre un 20 y 50 por ciento con lo que optimizamos bastante el rendimiento de nuestro servidor.

Para instalarlo simplemente tenemos que seguir estos pasos:

Lo primero es descargar el archivo tar.gz desde el sitio oficial para ello ejecutaremos el siguiente comando desde la shell:

# wget http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz

Decir que depende de la arquitectura que estamos utilizando puede ser i386, 86x… para ello lo comprobamos y descargamos la que se adapte a nuestro servidor. Necesitaremos registrarnos en este caso.

Una vez descargado el archivo lo descomprimimos:

# tar -zxvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz

Ya hemos extraido los archivos asi es que podemos borrar el archivo tar.gz:

# rm -rf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz

Entramos en el directorio donde se encuentran los archivos de instalacion:

# cd ZendOptimizer-3.3.3-linux-glibc23-i386

Ejecutamos el archivo de instalacion:

# ./install.sh

Respondemos de forma adecuada a todas las preguntas que se nos hacen en el proceso de instalacion, lo cual supone aceptar todo, una vez finalizado el proceso nos dirigimos al directorio en el que se encuentra el archivo php.ini:

# cd /etc

Abrimos el archivo php.ini con un editor de texto por ejemplo vi:

# vi php.ini

Buscamos las lineas de configuracion de Zend Optimizer en el archivo php.ini, para ello escribimos el siguiente comando:

# /zend

Suele estar al final del fichero.

Debemos de encontrar las siguientes lineas al final del archivo:

zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.3
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.3
zend_optimizer.version=3.3.3
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

Una vez que las hemos localizado las copiamos al portapapeles y si es necesario a un archivo de texto para no perderlas, y pasamos al modo de insercion de texto en el editor vi pulsando la tecla i, una vez en el modo texto comentamos las lineas pasando a quedar estas en el archivo php.ini de la siguiente manera:

;zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.3
;zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.3
;zend_optimizer.version=3.3.3
;zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
;zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

Salimos del modo texto pulsando la tecla escape y guardamos el archivo con el siguiente comando:

# :wq

Entramos en el directorio /etc/php.d:

# cd /etc/php.d

Usamos el editor de texto vi para crear un nuevo archivo:

# vi zend-optimizer.ini

Pegamos en el las lineas que anteriormente habiamos copiado del archivo php.ini en el archivo zend-optimizer.ini, para ello lo usual es si estas usando Putty pulsar el boton derecho del raton, lo cual hara que se pegue el contenido que tenemos copiado en el portapepeles, lueego guardamos el archivo:

# :wq

Reiniciamos apache:

# service httpd restart

Y comprobamos que tanto Ioncube como Zend Optimizer se hayan inicializado correctamente con php

# php -v

Si todo ha ido bien deberiamos de obtener algo como esto:

php -v
PHP 5.1.6 (cli) (built: Apr 7 2009 08:00:04)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with the ionCube PHP Loader v3.1.16, Copyright (c) 2002-2006, by ionCube Ltd., and
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies


Para el que no sepa que es Zend Studio, en resumidas cuentas, es un gran editor web orientado a la programación de páginas PHP, con ayudas en la gestión de proyectos y depuración de código.

Me han pasado por correo este listado de atajos de teclado (keyboard shortcuts) para Zend Studio.

Seguro que le viene de perlas a más de uno.

Gestión:

  • Ctrl + N -> Add New Document
  • Ctrl + O -> Open Document
  • Ctrl + F4 -> Close Document/Window
  • Ctrl + Shft + F4 -> Close All
  • Ctrl + Shft + O -> Open Project
  • Ctrl + Shft + N -> New Project
  • Ctrl + S -> Save File
  • Ctrl + Shft + S -> Save As
  • Ctrl + Alt + S -> Save All

Editor:

  • Ctrl + Space -> Show Code Completion
  • Ctrl + Space + Shft -> Show Function Arguments
  • Ctrl + Shft + F -> Reformat Code
  • Ctrl + / -> Add Remove Comment
  • Ctrl + / + Shft -> Add Remove PHP Block Comment
  • Ctrl + W -> Toggle Line Wrap
  • Ctrl + Z -> Undo
  • Ctrl + Y -> Redo
  • Ctrl + E -> Erase Line
  • Ctrl + D -> Duplicate Selection
  • Ctrl + L -> Change Selection to Lower Case
  • Ctrl + U -> Change Selection to Upper Case
  • Ctrl + B -> Bold Tag
  • Alt + I -> Italic Tag
  • Ctrl + – [1-3] -> Heading 1-3 Tag
  • Ctrl + Enter -> Break Tag
  • Ctrl + Back + Quote -> NBSP Tag
  • F1 -> Open Function Help


Código:

  • Ctrl + Shft + 1 -> Collapse All Non-PHP
  • Ctrl + Shft + 2 -> Collapse All Classes
  • Ctrl + Shft + 3 -> Collapse All Functions
  • Ctrl + Shft + 4 -> Collapse All DocBlocks
  • Ctrl + Shft + 9 -> Fold in Scope
  • Ctrl + Shft + E -> Expand All Folds
  • Ctrl + Shft + C -> Collapse All Folds


Depurando:

  • F8 -> Debug URL
  • F12 -> Profile URL
  • Ctrl + F5 -> Run
  • F5 -> Go
  • F10 -> Step Over
  • F11 -> Step Into
  • Shft + F1 1 -> Step Out
  • Shft + F5 -> Stop Debug
  • Shft + F10 -> Go to Cursor
  • F9 -> Toggle Breakpoint
  • Shft + F8 -> Add Watch
  • Ctrl + Alt + B -> Show In Browser


Navegación:

  • Ctrl + Alt + G -> Goto File
  • Ctrl + Shft + G -> Goto PHP Resource
  • Ctrl + G -> Goto Line
  • Ctrl + F2 -> Goto Next Bookmark
  • Alt + F2 -> Goto Next Project Bookmark
  • Ctrl + M -> Goto Matching Bracket
  • Alt + Left/Right -> Go Back/Forward
  • F2 -> Toggle Bookmark
  • Ctrl + Shft + F2 -> Remove All Bookmarks
  • Ctrl + Shft + M -> Open Bookmarks Dialog
  • Ctrl + Shft + R -> Show Recent Files
  • F4 -> Open Next Entry

CVS/Subversion:

  • Alt + U -> Update
  • Alt + C -> Commit


Herramientas:

  • Alt + Ctrl + A -> Analyze Code
  • Ctrl + Shft + I -> Check Include Files

Encontrar/Reemplazar:

  • Ctrl + F -> Find
  • F3 -> Find Next
  • Shft + F3 -> Find Prev
  • Ctrl + H -> Replace
  • Ctrl + Alt + F -> Find In Files

Plantillas PHP:

  • itar -> Iterates an Array
  • itdir -> Iterates a Directory
  • prv -> Prints a Value
  • inst -> Instance of Statement
  • fore -> For each Statement
  • swi -> Switch Statement
  • if -> If Statement
  • while -> While Loop
  • my_fr -> Mysql_Fetch_Row() Loop
  • my_gc -> Trap Code Output
  • cln -> Clone an Object
  • pcon -> Call Parent Constructor
  • fnc -> Function Statement


Plantillas HTML:

  • href -> Create a Hyperlink
  • ihref -> create an image hyperlink
  • form -> Create a Get Form
  • html -> Create Html Page
  • inbu -> Input by Button
  • insub -> Input Type Submit
  • intxt -> Input by Text Field
  • ol -> Ordered List
  • table -> Table 3 Rows by 3 Columns
  • jscript -> JavaScript Tag
  • select -> Select in Form
  • style -> Text/Css Style
  • inch -> Input by checkbox
  • ta -> form textarea

Leo en Hispasec que en este mes, se han encontrado 30 fallos de PHP, de las cuales 18 vulnerabilidades que se han encontrado, están sin parche.

[Copio&Pego]

El mes de los fallos en PHP ha publicado ya 35 vulnerabilidades en 28 días. 30 de ellos han sido encontrados en PHP, tres en la plataforma Zend y una en el módulo mod_security de Apache (los que el propio autor llama “bonus”). Afortunadamente, la mayoría son problemas que no pueden ser aprovechados de forma remota.

Stefan Esser es el creador de este proyecto, fundador de Hardened-PHP e impulsor del PHP Security Response Team. Durante años ha contribuido al desarrollo de PHP y considera que el núcleo de programadores de este lenguaje no está concienciado con respecto a la seguridad. Por ello decidió crear el mes de los fallos en PHP y ubicarlo en marzo de este año.

Con 35 vulnerabilidades publicadas, se pueden extraer las primeras conclusiones. El hecho de que la mayoría de los fallos no puedan ser aprovechados de forma remota puede aliviar en gran media a los usuarios que ofrezcan páginas basadas en PHP al exterior, pero supone un gran problema para los proveedores de hosting. Muchos de los fallos descritos requieren que un hipotético atacante tenga acceso al servidor web, y pueda ejecutar ahí código PHP. Por tanto, las compañías que ofrecen espacio web compartido y permitan la ejecución de PHP arbitrario se llevan la peor parte. Sus usuarios podrían de forma sencilla acceder a una shell en el sistema (a través de programas PHP prefabricados) si son capaces de aprovechar las funciones inseguras descubiertas o aplican las pruebas de concepto publicadas.

También durante el mes se han publicado problemas aprovechables de forma remota, al menos dos de ellos pueden servir para modificar las variables de sesión. Además se ha identificado un fallo que permite habilitar la funcionalidad register_globals, considerada muy insegura.

Al menos la publicación de estos problemas no ha causado hasta ahora una epidemia entre las millones de páginas PHP expuestas al exterior en el mundo. La revelación de un grave fallo aprovechable de forma remota y que tuvieran en común las centenas de plataformas creadas en PHP, hubiese supuesto un fuerte impacto en todo Internet.

En cualquier caso, el problema real es que para 18 agujeros encontrados no existe parche aún, y algunos, según sus propios descubridores, serán realmente complicados de solucionar.

Vía | Heise-security.co.uk