Главная > РНР: настольная книга программиста
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

6.3. Безопасность файловой системы

РНР подчинен безопасному построению многих серверных систем с доступом к файлам и директории каталогов. Это позволяет получить доступ к тем файлам, которые можно прочесть. Защита должна быть организована для любого из файлов, доступ к которому может принести очень много неприятностей.

С тех пор как был разработан РНР, начались проблемы следующего характера: скрипт, написанный на РНР, может позволить вам читать системные файлы типа /.../password, изменить связи вашей локальной сети на основе протокола CSMA-CD, может послать массивные задания на принтер и т. д. Это вызывает неприятности, связанные с системой обеспечения безопасности серверов.

Рассмотрим следующий пример, в котором при реализации скрипта происходит удаление файла из каталога:

<?php

// удаление файла из директории php

$username = $user_submitted_name;

$homedir = "/home/$username" ;

$file_to_delete = $userfile;

unlink ("$homedir/$userfile") ;

echo "$file_to_delete has been deleted!";

?>

Если же пользователь знает расположение каталогов на жестком диске, то возникает более серьезная угроза. В этом случае он без каких-либо проблем сможет удалить файл, содержащий пароли или любую другую важную информацию. Например:

<?php

$username = "../apache/";

$homedir = "/home/$username;

$file_to_delete = "passwd";

unlink ($homedir. $file_to_delete);

echo "$file_to_delete has been deleted!";

?>

В данном примере переменной задается имя каталога пользователя, в котором находится необходимый для удаления файл. Переменной $homedir задается путь направления поиска. Функция unlink ($homedir.$file_to_delete); производит по указанному пути удаление. Echo() выводит результат.

Хотелось бы выделить два важных пункта, запомнив которые вы сможете предотвратить эти проблемы:

• необходимо в некоторой степени ограничивать возможностипользователей;

• проверяйте программы, которые будут запускаться на сервере.

Соблюдая эти пункты, вы избавитесь от проблем, связанных с употреблением файловых функций.

Существует еще множество примеров, при реализации которых можно получить доступ к тому или иному файлу. Все зависит от администратора и его способностей. Анализируйте каждый скрипт логическими путями, и тогда проблем с безопасностью у вас не будет.

Categories

1
Оглавление
email@scask.ru