Программирование на PHP
Часто задаваемые вопросы

  Главная   Учебник   Статьи   FAQ   Книги   Ссылки  

Безопасность

  1. Я хочу ограничить доступ к одной из страниц. Хочу, чтобы при попытке открытия этой страницы браузер у клиента вывешивал окошко и предлагал ввести логин?
  2. Я - 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
Hosted by uCoz