PHPSecInfo es una aplicación muy similar a la funcionalidad de phpinfo() pero en lo relativo ala seguridad del PHP de nuestro servidor
PHPSecInfo lo podeis descargar en este enlace, un saludo amigos 😀
Plesk, seguridad, Proxmox, cloud, Manuales, tips, Servidores, scripts bash, sysadmin, Linux, Centos, Ubuntu, MySQL,
PHPSecInfo es una aplicación muy similar a la funcionalidad de phpinfo() pero en lo relativo ala seguridad del PHP de nuestro servidor
PHPSecInfo lo podeis descargar en este enlace, un saludo amigos 😀
A la hora de ejecutar PHP de forma eficiente, nos toca aprender un par de cosas sobre cachés, desactivar logs, etc. de igual forma que Apache. En este artículo describo directamente como cambiar algunas cuestiones de configuración, instalar XCaché, Zend Optimizer y Suhosin para que se ejecuten con PHP. Recomiendo tomarse un tiempo con cada tema para investigarlo bien y comprenderlo.
La configuración
En un servidor en producción, convienen los siguientes cambios en la configuración de php.ini:
Nos aseguramos que no desvelamos la versión de PHP:
expose_php = Off
Aumentar el límite de memoria si sabemos que algún script puede necesitarla:
memory_limit = 64M
Nos aseguramos de no mostrar ningún tipo de error si algo falla (para evitar desvelar paths y otra información que pudiera ser sensible)
display_errors = Off
Y si queremos ganar algo de velocidad, no es mala idea desactivar el logging de errores también. Se supone que el servidor en producción no es para debugging:
Continuar leyendo «Optimizar PHP : Instalar Zend Optimizer + Suhosin + XCache»
Si intentamos mostrar una fecha en PHP es posible que nos encontremos que salga con el formato:
July 31, 2007
Para que se muestre correctamente debemos usar el “locale” correcto que haga que se muestre la fecha en el formato adecuado. Los locales más habituales son del estilo de éstos:
es_ES es_ES.ISO_8859-1
Para establecer un locale se usa la siguiente función:
@setlocale(LC_TIME, 'es_ES');
El problema es que hay que hay que poner el nombre exacto del locale ya que de otra forma no funcionará. Aquí tenéis un sencillo script en PHP que te ayudará a saber qué locales están instalados en tu servidor:
<?php echo "<hr><br>'Locale' disponibles:<br>"; echo '<pre>'; system('locale -a'); echo '‘; ?>
Si quieres que se muestren sólo los españoles:
<?php echo "<hr><br>'Locale' disponibles:<br>"; echo '<pre>'; system('locale -a | grep -i es'); echo '‘; ?>
Ha salido a la luz una nueva versión de php, la PHP 5.2.8, esta versión soluciona un bug encontrado en la reciente versión también publicada 5.2.7 relacionada con el funcionamiento de magic_quotes, bug de seguridad que abría un agujero de seguridad al tener activo “magic_quotes_gpc”
Se recomienda actualizar a dicha versión, y si tienes la versión 5.2.7 y no deseas actualizar aplica el siguiente “parche” a tu php.ini para arreglar el problema de magic_quotes:
“filter.default_flags=0″
Más información en php.net
La subida de archivos en PHP suele estar limitada a 2 megas por motivos de seguridad. Si no fuese así cualquiera podría subir un archivo de 500 gigas y saturarnos el servidor.
La configuración de estos parámetros se encuentra en el archivo principal de configuración de PHP, el famoso php.ini.
En teoría sería tan simple como abrir este archivo y editar a nuestro antojo los valores que nos interesan:
upload_max_filesize 10M
post_max_size 10M
max_execution_time 100
max_input_time 100
Pero esto no siempre es posible ni recomendable. Si tenemos nuestra web alojada en un hosting compartido no nos van a dejar tocar el archivo php.ini y por otro lado, si tenemos varios dominios o subdominios en el mismo servidor puede que no queramos ser tan generosos en todos. Lo mejor es ser siempre lo más restrictivo posible y habilitar un mayor tamaño de subida únicamente donde nos interesa.
Esto lo podemos conseguir alterando los valores de configuración de PHP mediante un archivo .htaccess.
En primer lugar tenemos que comprobar que tenemos la opción AllowOverride activada ya sea en general o para ese subdominio. Para ello editamos el archivo de configuración de Apache, el famoso httpd.conf.
Si queremos aplicarlo de manera general:
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
</Directory>
O en una carpeta concreta:
<Directory «c:/wamp/www/micarpeta»>
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from allg
</Directory>
Una vez configurado Apache, creamos un archivo de texto con el nombre .htaccess que contendrá simplemente lo siguiente:
php_value upload_max_filesize 100M
php_value post_max_size 100M
php_value max_execution_time 1000
php_value max_input_time 1000
En este ejemplo se ha puesto un límite de subida de 100 megas y a su vez se aumenta el tiempo límite de ejecución del script a 1000 segundos. Será necesario variar el límite de tiempo a un valor razonable para que dé tiempo suficiente para subir el archivo y procesarlo.
Mediante este método se pueden modificar muchos más parámetros de configuración de PHP como las global_register y otras pero os dejo que lo investiguéis vosotros.