права 777 на скрипт и безопасность

Hummerstadt

Новичок
права 777 на скрипт и безопасность

Подскажите, есть на папку права 777 и на скрипт права 777.
Скрипт принимает форму, однако использует значение полей только для сравнений вида
PHP:
if($_POST['input1']=='kontrol value 1')
(о чекбоксах знаю)
Будет ли в таком случае уязвимость (какая-нибудь)?
Есть ли уязвимость при использовании скрипта с правами 777 в папке с правами 777 вообще (то есть скрипт ничего не принимает от пользователя, только вызывается им)?
Спасибо за ответы.
 

magic

lancer
Проблема скорее не в скрипте, а в открытом доступе к папке для всех пользователей.
 

crocodile2u

http://vbolshov.org.ru
Насчет 777 особо не беспокойся.

Тем не менее, дыра есть, и при некоторых условиях может привести к печальным последствиям (хотя это все весьма гипотетически).

Если в массиве $_POST не будет эелемента с ключом 'input1' - PHP сгенерирует ошибку уровня E_NOTICE. Любых ошибок следует избегать - это раз. А два - злоумышленник может получить получить путь к твоему скрипту, поскольку сообщение об ошибке будет его содержать.

Далее, в случае если этот злоумышленник имеет аккаунт на сервере, где лежит этот твой скрипт - он может подменить твой скрипт своим (права-то 777 :) )

Однако, повторюсь - не обращай большого внимания на 777 - лучше устрани потенциальные ошибки в коде...
 

whirlwind

TDD infected, paranoid
>Насчет 777 особо не беспокойся

Ну вы сейчас научите. Следует избегать 0777 так же как вы избегаете раздачи ключей от своего дома (даже своим знакомым, потому что это - потенциальная опасность). Если не существует объективных причин, по которым необходимо назначение 0777, то и не следует назначать такие права. Надо понимать разницу между конкретной уязвимостью и потенциальной. Если вы действительно заботитесь о безопасности, то в первую очередь вы должны думать о тех уязвимостях, которые еще не обноружены или попросту вам неизвестны.
 

beba

Новичок
Как я так, стараюсь права 777 на директории не разбазаривать... а если уж и придеться то своебразно именовать их (директории). Допустим temp можно переименовать в z92te58mp и т.п. Думаю это правильно....
 

Kelkos

Сам себе программер
ужос.. господа УЖОС!
подсказать вам как найти на большинсве серверов папку с правами 777? ..гы.. папка для загрузки картинок к товарам.. и что? ну серьёзно, ЧТО ДАЛЬШЕ??
Если на сайте нет необходимости загружать через скрипты файлы, то ты и не будешь даже задумываться о правах.. а если надо, то тебе не отвертеться от этого. А дыры? хм.. а постарайся их не делать и лишний раз проверь "опасные места" по коду и будет тебе счастие.
 

svetasmirnova

маленький монстрик
Kelkos
От чего не отвертеться? Максимум 755. А прямыми руками можно и меньше поставить.
 

Kelkos

Сам себе программер
svetasmirnova
может я чего то непонимаю? Вот щас выставил на каталог 755 и попытался в него загрузить картинки и получил Permission denied.
 

svetasmirnova

маленький монстрик
Не понимаешь. Права надо давать серверу (и/или РНР) на запись в этот каталог. То есть чтобы он владельцем был. В принципе можно только ему позволить туда писать.
 

Kelkos

Сам себе программер
svetasmirnova
и чем это тогда будет отличаться от 777? Может конечно и есть какие то заморочки, но опять же не могу допетрить какой от всего этого прок на купленном хостинге?
 

svetasmirnova

маленький монстрик
На купленном хостинге? На shared хостинге как раз самый основной смысл: соседи по машинке не смогут по твоим папкам лазить. А так смогут.

-~{}~ 29.12.05 22:31:

Ещё и удалять смогут
 

Kelkos

Сам себе программер
Ещё и удалять смогут
ужос.. пойду убью сибя ап стену..
Интересно, а какими путями раздаются "правильные" права доступа? Какие команды и где вводить? Лично я пока не в курсе.
 

svetasmirnova

маленький монстрик
Ой. Ну вообще это либо root, либо хозяин делает. Команды chmod, chown. Смотреть в мане *NIX-систем
 

white phoenix

Новичок
А мне кажется вы несовсем понимаете что такое 777, 755 и т.д. Объясню: для того чтобы понять что значит такая запись нужно сделать decbin(octdec('755')), получить 111101101, если разбить на группы по три бита, то 111 101 101.
Первая группа - Хозяин-владелец
Вторая группа - Группа хозяина
Третья группа - Все остальные
Внутри группы:
первый бит - Чтение,
второй - Запись
третий - Исполнение
Значит 755 - полный доступ хозяину, чтение+исполнение всем остальным.
Когда решаете какие права присваивать файлам на shared-хостинг вот из чего нужно исходить: Apache должен иметь доступ на чтение, при этом остальные (кроме хозяина) как можно меньше прав. Таким образом обрисовывается три варианта:
1. Apache запущен из под хозяина, в этом случае нужно ставить 700 (идеальный вариант).
2. Apache запущен из под пользователя находящегося с хозяином в одной группе: 750.
3. Apache запущен из под nobody: 755
Должен заметить что варианты кроме 1 означают полный общаг :(
 

svetasmirnova

маленький монстрик
white phoenix
Спасибо. Хорошо бы в клубный фак поместить, если там нет ещё объснялки :)
 

kruglov

Новичок
В дополнение - бит запуска (x) у папки означает позможность узнавать ее содержимое.
 

white phoenix

Новичок
svetasmirnova
> Хорошо бы в клубный фак поместить
Ну сейчас это не красиво, наспех, для клубного FAQ могу поподробнее и покрасивее.
 
Сверху