Назад | Перейти на главную страницу

Почему так важно удалить 777 разрешений?

Я пишу установщик для своего веб-приложения PHP. Пользователь должен изменить права доступа для нескольких файлов и каталогов (config.php, cache, uploads, .htaccess) на 777 (чтобы он был доступен для записи). Я видел во многих приложениях, что установщик требует, чтобы пользователь вернул разрешения (для config.php и т. Д.) Обратно на 644.

Почему это так важно? Почему я не могу просто оставить его с 777? Я предполагаю, что это какая-то проблема безопасности, но что именно может случиться, если я оставлю эти файлы доступными для записи?

Скрипты PHP запускаются на веб-сервере. Если вы оставите разрешения таким образом, ваш веб-сервер станет пользователем (www-data или apache) может писать в эти файлы. Если в вашем скрипте есть ошибка или уязвимость, эти разрешения позволят веб-серверу (и, следовательно, внешним агентам) изменять содержимое файлов и файловой системы. Что может случиться:

  • Потеря всего (разрешение на запись также является разрешением на удаление файлов);
  • Добавление нежелательного материала: некоторые атаки направлены на добавление данных на ваш сайт, таких как вредоносные скрипты, поддельные страницы или скрипты для физикинга и рассылки спама. Поскольку ваш веб-сервер может записывать файлы в файловую систему, данные могут быть загружены в любое место, где у него есть разрешения.

Так что да, оставлять разрешения для этого состояния - ужасная идея.

777 особенно плох. Это означает, что любой может удалять файлы, а также создавать их. Я создаю файл, а вы удаляете этот файл.

если ты должен используйте 777, затем используйте 1777 - это говорит ОС разрешить только владельцу файла удалить его.

В остальном это именно то, что сказано в coredump - ошибка в скрипте, которая позволяет мне записывать новые файлы или перезаписывать существующие файлы, позволяет мне делать с вашим веб-сервером все, что я хочу, потому что я перезаписываю / создаю файлы как apache / nobody / www- data, то веб-сервер будет обслуживать мой вредоносный контент вместо исходного контента.

В идеале процесс веб-сервера не может писать в каталоги, из которых он читает, чтобы избежать таких проблем.

Другие пользователи на этом сервере / рабочей станции могут изменять файл. Например, используя настольную Ubuntu, сделайте / home 777, и он может быть удален или изменен любым пользователем.

777 представляет особую угрозу безопасности, когда вы находитесь на общем хостинге.

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