Разрешения по умолчанию для вновь создаваемых файлов и каталогов задаются переменной среды umask . Владелец файла и root могут изменять права доступа.
Если вам не нужно использовать chmod в вашем приложении, оставьте его в своем списке отключений. Вы должны взглянуть на безопасность так: многие люди умнее меня теперь делают chmod одной из самых безопасных частей моего приложения. Поэтому я буду тратить свое свободное время на то, чтобы обеспечить безопасность других частей.
Если вы автоматизируете приложение, сделайте приложение доступным только для чтения на сервере. Когда вы вносите изменения в код своего приложения, это все же усложнит вам задачу. В какой-то момент вы вернетесь назад и вперёд, сделав некоторые изменения кода и протестировав их на сервере ... а затем забудете сбросить права доступа к файлу / каталогу обратно только для чтения.
Если у вас есть только одна учетная запись пользователя на вашем рабочем компьютере, я просто придерживаюсь разрешений по умолчанию - все, вероятно, управляется для вас. Или вы можете удалить групповые и «другие» разрешения, как описано ниже.
Типичная производственная настройка - иметь группу приложений, к которой вы принадлежите. Вам также нужен отдельный пользователь для запуска вашего php-приложения. Сохраните полные разрешения для владельца и группы и удалите все разрешения из «другого». Таким образом:
- Разработчики ведут свои индивидуальные логины - вы можете отслеживать, кто что сделал, когда.
- Вы и другие разработчики можете скопировать новый код на сервер.
- Приложение может запустить код.
- Приложение не может получить доступ к чему-либо вне кода.
- Другие пользователи не видят ваш код.
Полагаю, управлять вашим рабочим сервером - это чужая работа? Они потратят время, чтобы убедиться, что никто не может войти в систему и ковыряться. Хотя вам нужно убедиться, что никто не может выполнять команды операционной системы, я думаю, что лучшее место для начала - это узнать о xss . Настройки php сервера по умолчанию должны быть в порядке. Наименее защищенная часть приложения - это та часть, которую вы только что видели.
Если кто-то собирается получить доступ к системному вызову, он, скорее всего, будет через форму. Даже если вы исключите системные вызовы, формы по-прежнему подвержены хранению javascript. Если вы не храните кредитные карты в своем приложении, более вероятной целью будет пароль / сеанс в браузере вашего пользователя.