Решил отписаться в этой теме. Вдруг кому пригодится...
(многое из написанного ниже касается только линукса)
Для проверки php.ini на предмет уязвимости мне подсказали красивую утилиту - PhpSecInfo.
Тут живет описание.
Тут можно скачать.
Разархивируем и переносим на сервер в отдельный каталог в корень форума.
Например /phpsecinfo-20070406/. (это каталог в который утилита разархивируется по умолчанию)
(Переносить не обязательно именно в это место. Лишь бы Вы знали как "вызвать" этот каталог)
Дальше браузером идем в этот каталог. Например - http ://ваш сайт/phpsecinfo-20070406/
И смотрим на экране на свои настройки. Все цветное и хорошо прокомментировано.
Что делать если какие-то настройки надо менять?
Если сервер Ваш - то без проблем редактируйте файл php.ini
Если сервер хостинговый. Тут есть варианты.
1. Многие настройки можно прописать в .htaccess. Примеры есть в
этой теме.
2. Если настройки нельзя прописать в .htaccess. Например open_basedir, которую я считаю очень важной для безопасности, прописать в .htaccess нельзя. В этом случае можно внести изменения в конфигурационный файл апача который относится к Вашему сайту (форуму).
Например у меня этот файл находится в каталоге /usr/httpd/sites/
Вот пример содержимого этого файла:
Оффтоп
<VirtualHost *:80>
DocumentRoot /home/stp/forum.xxx.kiev.ua/htdocs
ServerName forum.xxx.kiev.ua
<Directory "/home/stp/forum.xxx.kiev.ua/htdocs">
AllowOverride All
</Directory>
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f
admin@xxx.kiev.ua"
php_admin_value upload_max_filesize 100M
php_admin_value post_max_size 100M
php_admin_value upload_tmp_dir /home/stp/forum.xxx.kiev.ua/htdocs/tmp
php_admin_value open_basedir /home/stp/forum.xxx.kiev.ua/htdocs
ErrorLog /home/stp/forum.xxx.kiev.ua/logs/error.log
CustomLog /home/stp/forum.xxx.kiev.ua/logs/access.log common
</VirtualHost>
Файл этот Вам тоже скорее всего не доступен, но можно попросить хостера отредактировать его.
Обратите внимание что если Вы исправляете не файл php.ini то утилита PhpSecInfo не увидит изменений
и по прежнему будет "ругаться" на настройки.
Убедиться в том что настройки вступили в силу можно вызвав функцию phpinfo()
Этот вызов есть в админке: "Обслуживание"->"Показать информацию о PHP"
Там в разделе "Core" видны и настройки в php.ini (Master Value) и настройки которые справедливы только для Вашего сайта (Local Value).
Вот, например, мои настройки для переменной open_basedir:
Local Value = "/home/stp/forum.xxx.kiev.ua/htdocs
Master Value = "no value"
В заключение хочу остановиться на некоторых переменных которые считаю критичными:
open_basedir - если включена то не позволит вашему "движку" обращаться ни к каким каталогам кроме явно прописанных в этой переменной (включая подкаталоги).
register_globals - у меня была включена в результате мой форум поломали.