De base sous Ubuntu l’extension php5-suhosin ne s’intalle pas par défaut avec PHP. Une vérification s’impose donc :
root@machine:~# dpkg -l | grep php
ii libapache2-mod-php5 5.2.4-2ubuntu5.14 server-side, HTML-embedded scripting languag
ii php-pear 5.2.4-2ubuntu5.14 PEAR - PHP Extension and Application Reposit
ii php5 5.2.4-2ubuntu5.14 server-side, HTML-embedded scripting languag
ii php5-cli 5.2.4-2ubuntu5.14 command-line interpreter for the php5 script
ii php5-common 5.2.4-2ubuntu5.14 Common files for packages built from the php
ii php5-curl 5.2.4-2ubuntu5.14 CURL module for php5
ii php5-gd 5.2.4-2ubuntu5.14 GD module for php5
ii php5-imagick 2.0.1-1ubuntu0.1 ImageMagick module for php5
ii php5-mcrypt 5.2.3-0ubuntu1 MCrypt module for php5
ii php5-mysql 5.2.4-2ubuntu5.14 MySQL module for php5
ii phpmyadmin 4:2.11.3-1ubuntu1.3 Administrate MySQL over the WWWOn installe donc l’extension
root@machine:~# apt-get install php5-suhosinAvait-on spécifié une valeur à la directive "disable_functions" dans la configuration php :
root@machine:~# grep disable_fu /etc/php5/apache2/php.ini
disable_functions = show_source,system,dl,shell_exec,exec,passthru,popen,proc_open,chroot,pfsockopen,socket_connect,socket_create_listen,socket_accept,socket_listen,syslog,openlog,closelog,symlink,mysql_list_dbsAh vi…
Alors il faut la désactiver (commenter) :
sed -i 's/^disable_function/;disable_function/g' /etc/php5/apache2/php.iniOn configure ensuite l’extension Suhosin en affectant à l’option d’excécution "suhosin.executor.func.blacklist" l’ancienne valeur de la directive disable_function du php.ini
sed -i "s/^;suhosin.executor.func.blacklist\( \)\?=\( \)\?/suhosin.executor.func.blacklist = `grep disable_function /etc/php5/apache2/php.ini | cut -d = -f2`/g" /etc/php5/conf.d/suhosin.ini en une ligne de commande pour le fun ![]()
il ne reste plus qu’a surcharger cette option de l’extension suhosin au cas par cas au sein des différents VirtualHost via la directive de configuration php_admin_value
Exemple :
<VirtualHost *:80>
ServerAdmin mapomme@superdomaine.tld
ServerName www.superdomaine.tld
ServerAlias superdomaine.tld
DocumentRoot /var/www/superdomaine/
<Directory /var/www/superdomaine/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
php_admin_value open_basedir "/tmp/:/var/www/superdomaine/"
php_admin_value suhosin.executor.func.blacklist "show_source,system,dl,shell_exec,passthru,popen,proc_open,chroot,pfsockopen,socket_connect,
socket_create_listen,socket_accept,socket_listen,syslog,openlog,closelog,symlink,mysql_list_dbs"
</Directory>
ErrorLog /var/log/apache2/superdomaine-error.log
CustomLog /var/log/apache2/superdomaine-access.log combined
</VirtualHost>Pour superdomaine.tld la fonction exec() est autorisée ![]()
Tags
Infos