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

Лучший способ защитить файлы .shtml с возможностью записи для всех, написанные Perl?

Скрипт Perl

У меня есть сценарий Perl, работающий на старом сервере Debian 6 (пока я не перейду на новый сервер), который открывает редактируемую панель в файле .shtml, принимает только Креольский разметка, вводимая одним пользователем, и запись в два редактируемых пользователем файла .shtml и создание резервной копии каждого при сохранении отредактированного файла .shtml. Разрешения файла .shtml: 606 или -rw----rw-.

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

До переключения серверов они работали под suEXEC (которые я не настраивал и не хочу использовать), но теперь им нужно изменить разрешения для запуска.

Доступные для записи файлы

Два редактируемых файла .shtml - это SSI с блоком virtualHost, установленным на IncludesNoExec.

У пользователя нет файла .htaccess public_html каталог, единственный другой пользователь делает только простые изменения HTML и не имеет никаких других знаний, я управляю скриптами в cgi-bin выше public_html папка, а все файлы в каталоге пользователя имеют имя владельца / группы.

Мои вопросы с учетом вышеизложенного:

  1. есть ли что-нибудь, чего я должен остерегаться, если права доступа к файлам 606/-rw----rw-?
  2. что еще я мог сделать для дальнейшей защиты такого старого сервера Debian на данный момент?

Я подумал об изменении порта сервера с 22 на что-то намного более высокое, что я сделал на другом сервере, но для пары сайтов, работающих на этом старом, у меня пока нет доступа к их настройкам DNS или удаленного входа, поэтому это еще не вариант. Как и многие люди, я на самом деле не администратор сервера, но мне нужно поддерживать вещи, так как мой напарник умер.

Наиболее важные вопросы:

  • кто запускает сценарий?
  • кто может изменить сценарий?

Судя по вашему описанию, приложение представляет собой HTML-форму, а ваша программа - CGI-скрипт. Таким образом, этот сценарий запускается пользователем демона сервера HTTP, когда пользователь нажимает кнопку «Отправить».

В случае взлома этого или другого сценария CGI вы не хотите, чтобы ваш сценарий изменялся. Таким образом, сценарий должен быть доступен для чтения + выполнения только пользователем-демону HTTP, а владельцем файла должен быть другой пользователь, чтобы пользователь-демон не мог изменить разрешение.

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

Каталоги, в которых хранятся скрипт и файлы .shtml, не должны быть доступны для записи или принадлежать пользователю демона HTTP.