d5739f7ba1e05a165213b02f5f8e17305ffc538b
Utilisateurs/SiteClubs.md
... | ... | @@ -109,8 +109,28 @@ ipm-itk a été configuré pour réduire le nombre de processus originaux : |
109 | 109 | #### Sécurisation de PHP |
110 | 110 | |
111 | 111 | PHP a été configuré pour augmenter la sécurité des scripts php. La configuration est dans `/etc/php5/apache2/php.ini`. |
112 | -Notemment des fonctions potentiellement dangereuses ont été désactivées via `disable_functions`, puis l'*open-basedir* a été chrooté vers `/srv/www/`. |
|
113 | -Finalement lors d'une auth avec un .htaccess auprès (par exemple) du LDAP, on récupère dans $_SERVERPHP_AUTH_USER le nom de l'utilisateur. Malheureusement, dans sa configuration par défaut, on peut aussi récupérer dans $_SERVERPHP_AUTH_PW le mot de passe entré par l'utilisateur. Pour éviter cela, on ajoute dans php.ini une option, `auto_prepend_file` qui permet de préciser un script exécuté avant tout script PHP. Dans son incarnation actuelle, ce script met juste dans PHP_AUTH_PW une valeur bidon. Il a fallu faire un cas spécial pour phpMyAdmin, qui récupère le mot de passe pour se connecter à la base SQL. |
|
112 | +Notemment des fonctions potentiellement dangereuses ont été désactivées via `disable_functions`, puis l'*open-basedir* a été chrooté vers `/srv/www/`. |
|
113 | +Finalement lors d'une auth avec un .htaccess auprès (par exemple) du LDAP, on récupère dans $_SERVERPHP_AUTH_USER le nom de l'utilisateur. Malheureusement, dans sa configuration par défaut, on peut aussi récupérer dans $_SERVERPHP_AUTH_PW le mot de passe entré par l'utilisateur. Pour éviter cela, on ajoute dans php.ini une option, `auto_prepend_file` qui permet de préciser un script exécuté avant tout script PHP. Dans son incarnation actuelle, ce script met juste dans PHP_AUTH_PW une valeur bidon. Il a fallu faire un cas spécial pour phpMyAdmin, qui récupère le mot de passe pour se connecter à la base SQL. |
|
114 | + |
|
115 | +Extrait de `/etc/php5/apache2/php.ini`: |
|
116 | + |
|
117 | +```ini |
|
118 | +disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_g\ |
|
119 | +et_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, |
|
120 | +open_basedir = /srv/www/ |
|
121 | +auto_prepend_file = "/etc/php5/apache2/unset_auth_pw.php" |
|
122 | +``` |
|
123 | + |
|
124 | +Et le script de prepend ``/etc/php5/apache2/unset_auth_pw.php` : |
|
125 | +```php |
|
126 | +<?php |
|
127 | +if (! preg_match('/^phpmyadmin\\./', $_SERVER['HTTP_HOST'])) { |
|
128 | + $_SERVER['PHP_AUTH_PW'] = "bouh !"; |
|
129 | +} |
|
130 | + |
|
131 | +?> |
|
132 | +``` |
|
133 | + |
|
114 | 134 | |
115 | 135 | #### Reverse-Proxy |
116 | 136 |