Выберите текст между двумя шаблонами с помощью sed, когда шаблоны повторяются

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

Таким образом, это означает, что любая брешь в сервере никогда не приведет к чему-то большему, чем DOS и эксфильтрация, файлы не смогут быть записаны веб-сервером.

Конечно, в реальной жизни все может быть сложнее, так как:

  • Некоторым CGI/приложениям внутри веб-сервера может потребоваться доступ на запись куда-либо, например, для хранения данных сеанса, если это не сделано с базой данных
  • обычно веб-серверу требуется доступ для записи куда-либо для записи файлов журнала и т. д.
  • в некоторых настройках, и это может иметь положительное влияние на безопасность, каждое приложение внутри веб-сервера может работать под другим UID, чем сам веб-сервер. Жонглирование собственностью и правами может стать сложным. Вероятно, поэтому вы можете много раз видеть в Интернете множество людей, говорящих :, просто поместите rwxвезде, и это сработает. Конечно, если вы даете всем все права, это «работает», но это последствия с точки зрения безопасности.

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

  • сделать так, чтобы каждый пользователь владел своим конкретным каталогом с полными правами для него
  • сделать основной группой веб-сервера группу каждого пользовательского каталога с правом rxдля него
  • вообще никаких прав для других пользователей

При этом каждый пользователь видит только свои собственные файлы и ничего больше. (SFTP также имеет возможность chroot для дополнительной безопасности, но это сопряжено со своими сложностями ),а вебсервер имеет доступ ко всем файлам только на чтение.

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

0
25.02.2020, 17:44
1 ответ

Одним из способов может быть(POSIX sed):

$ sed -e '
   /PAT1/,/PAT2/!d
   H;/PAT1/h;/PAT2/!d;g
   s/PAT2.*//;s/.*PAT1//
' file

Предположим, что PAT1 и PAT2 находятся на разных линиях.

0
28.04.2021, 23:22

Теги

Похожие вопросы