Безопасность / FAQ по PHP
Оглавление
- Я хочу ограничить доступ к одной из страниц. Хочу, чтобы при попытке открытия этой страницы браузер у клиента вывешивал окошко и предлагал ввести логин?
- Я - hosting provider, как мне организовать безопасность скриптов виртуальных серверов, т.е. что бы юзер Вася не смог сделать fread() файла юзера Пети?
Я хочу ограничить доступ к одной из страниц. Хочу, чтобы при попытке открытия этой страницы браузер у клиента вывешивал окошко и предлагал ввести логин?
Читать: http://www.php.net/manual/en/features.http-auth.php
Vova Rusakevich, 2:454/23.501
Я - hosting provider, как мне организовать безопасность скриптов виртуальных серверов, т.е. что бы юзер Вася не смог сделать fread() файла юзера Пети?
Это делается при помощи диррективы PHP : safe_mode, и параметра open_basedir.
Пример:
<VirtualHost 195.206.40.162:*> ServerName tit.irk.ru LanguagePriority ru en DocumentRoot /home/users/WWW <Directory /home/users/WWW> php_admin_value open_basedir /home/users/WWW </Directory> </VirtualHost>
В итоге, если "умный" юзер Вася пытается что-то сделать с файлами за пределами его (/home/users/WWW) дирректории, то он получает:
Warning: open_basedir restriction in effect. File is in wrong directory. in /home/users/WWW/ss.pht on line 3 Warning: fopen("/etc/passwd","r") - Operation not permitted in /home/users/WWW/ss.pht on line 3
За более детальным конфигом с комментариями: http://www.php4you.kiev.ua/docs/php_limit.html
Vitaliy N. Kravchenko, kvn(@)phbme.ntu-kpi.kiev.ua
Что бы дать юзеру хранить/читать/писать в файлы вне www, но в пределах доступности скрипта нужно исправить строку:
php_admin_value open_basedir /home/users
Oleg Krasnov, 2:5062/17.77