Создание расширений, которым необходимо перенаправить страницу «Ошибка 500 внутренних серверов» на пользовательскую страницу

Хотя я не могу найти никакой информации о macOS, это OMG! В статье Ubuntu есть интересная цитата от Марка Шаттлворта: Что касается запуска Snaps в Windows 10? «Это абсолютно правдоподобно», - сказал Шаттлворт. «Snaps использует современные функции в ядре Linux для обеспечения безопасности, настройки доступа к файловой системе и т. Д., И все это связано с использованием современных механизмов в ядре. И Каноническое руководство много [этой работы]. [Microsoft]

Если это «правдоподобно», чтобы запустить его в Windows, я бы сказал то же самое для macOS, за исключением того, что Microsoft похоже, сотрудничает с Canonical, что я не слышал об Apple.

Документация на OMG! Ubuntu и запись в Arch Wiki на snapd являются информативными:

Из Arch Wiki:

Что касается запуска Snaps в Windows 10? «Это абсолютно правдоподобно», - сказал Шаттлворт.

Обратите внимание, что snap-confine построен с опцией --disable-confinement; полное ограничение связано с ядром, поддерживающим AppArmor, и связанным с ним профилем для привязки.

Под капотом запускает: Устанавливает различные переменные среды: [...] Когда аппаратное обеспечение назначается оснастке, настраивает устройство cgroup с устройствами по умолчанию (например, / dev / null, / dev / urandom и т. д.) и любыми устройствами, которые назначены этой привязке. Устанавливает частный / tmp, используя личное пространство имен для каждой команды для каждой команды и установку каталога для каждой команды на / tmp Устанавливает новый экземпляр devpts для каждого экземпляра. Устанавливает фильтр seccomp для команды. Выполняет команду в профиле приложения AppArmor по специальному значению по умолчанию.

«Snaps используют современные функции ядра Linux для обеспечения безопасности ограничение доступа к файловой системе и т. д., и все это связано с использованием современных механизмов в ядре. И Каноническое руководство много [этой работы]. [Microsoft]

Из политики:

Эта комбинация ограничительных профилей AppArmor (которые опосредуют доступ к файлам, выполнение приложений, возможности Linux (7), mount, ptrace, IPC, сигналы, крупнозернистая сеть), четко определенные области файловой системы, зависящие от конкретных приложений, фильтрация syscall whitelist через seccomp, private / tmp, новые экземпляры и группы устройств обеспечивает надежное удержание и изоляцию приложения.

Хотя AppArmor и seccomp являются только Linux, похоже, что ограничение может быть опциональным, поэтому мы можем игнорировать это. Затем используется использование devpts, cgroups и mount namespaces. Если есть какие-то блокировки, я думаю, что это будет для них. Я недостаточно знаком с BSD, чтобы сказать, что такое эквиваленты.

// -*- Mode: Go; indent-tabs-mode: t -*-
// +build !linux,!darwin,!freebsd

Приложение snapd само записывается в Go, что должно сделать его достаточно кросс-платформенным. Действительно, некоторые файлы имеют запись в Arch Wiki на snapd :

// -*- Mode: Go; indent-tabs-mode: t -*-
// +build darwin freebsd linux
// +build cgo

osutil/group_other.go:

0
задан 13 August 2018 в 14:43

1 ответ

Как указано в этой ссылке, пользовательские страницы для 500 работают только в том случае, если причиной 500 может быть обработано Apache для отображения страницы.

Скажем, например, вы сделали синтаксическую ошибку на странице .htaccess или в вашем конфигурационном файле apache, она собирается выбросить ошибку сервера 500, но поскольку Apache не работает, он не может ничего обслуживать, включая этот пользовательский страницы, поэтому вы получаете страницу браузера по умолчанию. Кроме того, в зависимости от того, как вы настроите свой отчет об ошибках PHP, вы также не получите 500 пользовательских страниц. Это намного больше, и настройка 500 страниц почти бесполезна, потому что большинство людей этого никогда не увидит. Вы будете знать, прежде чем они это сделают, потому что это 500, как правило, проблема с конфигурацией, например синтаксическая ошибка в коде.

Также из этой ссылки ,

Скажем, например, вы сделали синтаксическую ошибку на странице .htaccess или в вашем конфигурационном файле apache, это собирается выбросить 500-серверную ошибку, но поскольку Apache не работает, он не может ничего обслуживать, включая эту страницу, поэтому вы получаете страницу браузера по умолчанию. Кроме того, в зависимости от того, как вы настроите свой отчет об ошибках PHP, вы также не получите 500 пользовательских страниц. Это намного больше, и настройка 500 страниц почти бесполезна, потому что большинство людей этого никогда не увидит. Вы будете знать, прежде чем они это сделают, потому что это 500, как правило, проблема с конфигурацией, например синтаксическая ошибка в вашем коде.

Хотя большинство сообщений об ошибках можно переопределить, существуют определенные обстоятельства, при которых внутренние сообщения используются независимо от установки ErrorDocument. В частности, если обнаружен искаженный запрос, нормальная обработка запроса будет немедленно остановлена ​​и будет возвращено внутреннее сообщение об ошибке. Это необходимо для защиты от проблем безопасности, вызванных плохими запросами.

0
ответ дан 15 August 2018 в 17:02

Другие вопросы по тегам:

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