В настоящее время я использую PHP (5.3) на IIS 7.5 на сервере Win2k8 R2 Web Edition и хотел бы знать, какие проблемы или уязвимости безопасности, если таковые имеются, я могу внести в систему, назначив разрешения на чтение, запись, изменение и выполнение для любого Учетная запись IUSR или группа IIS_USERS для% SystemRoot% \ Temp?
Должен ли я вообще изменять права доступа к этой папке (как Windows напоминает мне, что, вероятно, мне не следует этого делать, когда я пытаюсь их изменить)?
Должен ли я создать временную папку в другом месте и соответствующим образом установить разрешения?
Проблема в том, что когда я устанавливаю анонимную аутентификацию (я предполагаю, что это более безопасный вариант ???), чтобы использовать идентификатор пула приложений, при запуске сеансов PHP застревает в цикле, потому что он не может создавать файлы сеанса в% SystemRoot% \ Temp из-за отсутствия разрешений у пользователя пула приложений или группы IIS_USERS.
Еще одна проблема заключается в том, что ImageMagick (расширение PHP) лишен доступа к% SystemRoot% \ Temp для записи временных файлов, поэтому возникают исключения.
Я пробовал искать в Google, но не нашел ничего, что конкретно затрагивало бы эту тему.
Любая помощь очень ценится.
Назначать анонимному пользователю inet права «изменять» временную папку по умолчанию не очень разумно. Таким образом, это не сбой безопасности, но вы упрощаете некоторые классы атак на свою веб-инфраструктуру.
Как всегда, дьявол кроется в деталях. Пока в эту папку записаны только безобидные данные, особого риска нет: сама папка не отличается от множества других мест в вашей системе. Конечно, если вы хотите установить права для IUSR_ в этой папке, это также означает, что вы собираетесь использовать это назначение, чтобы веб-приложение могло писать в него.
Есть риски: - Наличие прав на выполнение в этой папке удаляет уровень безопасности: если злоумышленник найдет способ загрузить исполняемый файл во временную папку и заставить систему запустить его, он запустится. Если вы откажетесь от права «выполнить», оно просто не сработает. - Папка находится прямо над самой важной частью вашей системы: местоположением файлов операционной системы. Это означает, что если кому-то удастся использовать ошибку обхода каталогов в веб-приложении, которое использует временный файл, он будет в одном шаге от корневого каталога системы и всех интересных вещей, которые в нем находятся.
Ни одно из этих действий само по себе не является слишком рискованным, но хорошая безопасность основывается на глубокой безопасности. В этом случае я почти уверен, что ваше приложение PHP может использовать другую папку, чем временный каталог системы, для сохранения временных файлов. Лучше всего разместить это в отдельном разделе, в папке, где IUSR_ * имеет доступ на чтение / запись, но НЕ на выполнение.