Идеята е много проста ако някои качи web shell на машината да не може да го ползва.
Ето го решението със suhosin:
File /etc/php5/apache2/conf.d/suhosin.ini
suhosin.executor.func.blacklist =system, exec, shell_exec, passthru, ini_alter, dl, pfsockopen, openlog, syslog, readlink, symlink, link, leak, fsockopen, popen, escapeshellcmd, apache_child_terminate apache_get_modules, apache_get_version, apache_getenv, apache_note,apache_setenv,virtual
С php5 (Във virtualhost или в целия apache2.conf):
<IfModule mod_php5.c>
php_admin_flag safe_mode on
php_admin_value disable_functions "system, exec, shell_exec, passthru , ini_alter, dl, pfsockopen, openlog, syslog, readlink, symlink, link, leak, fsockopen, popen, escapeshellcmd, apache_child_terminate apache_get_modules, apache_get_version, apache_getenv, apache_note,apache_setenv,virtual"</IfModule>
Аз лично ползвам вариант 1
PS:
Като цяло е добре да се добави и "set_time_limit", но не съм го добавил защото wordpress го ползва и ако има такъв сайт няма да може да обновява постовете си.
Премахнах и error_log, че : "[Wed May 30 22:04:51 2012] [error] [client xxx.xxx.xxx.xxx] PHP Warning: error_log() has been disabled for security reasons in /path/file.php on line 306, referer: http://site.com"
Apache2 php5 - Забрана на системни функции,
Използването на suhosin като цяло е много грозна свинщина особенно за някой по грозно написан CMS от полуразвити маимуни програмисти. Затова Debian го извадиха и от следващия stable няма да го има вграден по подразбиране, защото често някой системи гърмят и е трудно да се разбере дали е Debian bug или suhosin такъв. Препоръчвам ти mod_security общо взето филтрира ламавите хахори.
мдам и mod security става и е също лесно. Има далеч по- добри неща за пипане там :)