Редактировал(а) Ирина Сафонова 22.03.2024, 15:16

От версии 38.1
отредактировано Ирина Сафонова
на 31.03.2023, 18:01
Изменить комментарий: К данной версии нет комментариев
К версии 49.1
отредактировано Ирина Сафонова
на 01.04.2023, 00:26
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -119,8 +119,49 @@
119 119  == Настройка фильтров безопасности на уровне строк ==
120 120  
121 121  Используя фильтры безопасности на уровне строк (в меню пункте меню **Безопасность**), вы можете создавать фильтры, которые назначаются конкретной таблице, а также набору ролей. Если вы хотите, чтобы члены финансовой группы имели доступ только к строкам, в которых отдел = "финансы", вы можете:
122 -1. Создать фильтр безопасности на уровне строк с этим предложением (department = "finance").
122 +
123 +~1. Создать фильтр безопасности на уровне строк с этим предложением (department = "finance").
123 123  2. Назначить предложение роли **Финансы** и таблице, к которой оно применяется.
124 -3. Поле предложения, которое может содержать произвольный текст, добавить к предложению WHERE сгенерированного оператора SQL. Таким образом, вы даже можете настроить фильтр За последние 30 дней и применить его к определенной роли с таким предложением, как date_field > DATE_SUB(NOW(), INTERVAL 30 DAY). Он также может поддерживать несколько условий: client_id = 6 И рекламодатель = "foo" и т.д.
125 +3. Поле предложения, которое может содержать произвольный текст, добавить к предложению WHERE сгенерированного оператора SQL. Таким образом, вы даже можете настроить фильтр //За последние 30 дней// и применить его к определенной роли с таким предложением, как //date_field > DATE_SUB(NOW(), INTERVAL 30 DAY)//. Фильтр также может поддерживать несколько условий: client_id = 6 И рекламодатель = "foo" и так далее
125 125  
126 -Все соответствующие фильтры безопасности на уровне строк будут объединены вместе (внутри различные предложения SQL объединяются с помощью операторов AND). Это означает, что можно создать ситуацию, когда две роли конфликтуют таким образом, что подмножество таблиц может быть пустым. Например, фильтры client_id=4 и client_id=5, примененные к роли, приведут к тому, что пользователи этой роли будут иметь client_id=4 И client_id=5, добавленные к их запросу, что никогда не может быть правдой.
127 +Все соответствующие фильтры безопасности на уровне строк будут объединены вместе (внутри различные предложения SQL объединяются с помощью операторов AND). Это означает, что можно создать ситуацию, когда две роли конфликтуют таким образом, что подмножество таблиц может быть пустым. Например, фильтры **client_id=4** и client_id=5, примененные к роли, приведут к тому, что пользователи этой роли будут иметь **client_id=4** и **client_id=5**, добавленные к их запросу, что никогда не может быть правдой.
128 +
129 +== Политика безопасности контента ==
130 +
131 +**Политика безопасности контента** — это дополнительный уровень безопасности, который помогает обнаруживать и смягчать определенные типы атак, включая [[межсайтовые скриптинги>>https://wiki.dfcloud.ru/bin/view/Glossary/%D0%9C%D0%B5%D0%B6%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%BD%D0%B3]] (XSS) и атаки с внедрением данных.
132 +
133 +Политика безопасности контента позволяет администраторам серверов уменьшить или устранить векторы, по которым может происходить XSS, указав домены, которые браузер должен рассматривать как допустимые источники исполняемых скриптов. В этом случае браузер, совместимый с политикой, будет выполнять только сценарии, загруженные в исходные файлы и полученные из этих разрешенных доменов, игнорируя все остальные сценарии (включая встроенные сценарии и HTML-атрибуты обработки событий).
134 +
135 +Политика описывается с помощью ряда директив, каждая из которых описывает политику для определенного типа ресурса или области политики. Описание директив доступно по ссылке.
136 +
137 +Важно коррректно настроить политику безопасности контента при развертывании Cloud BI, чтобы предотвратить многие типы атак. Cloud BI предоставляет две переменные в config.py для развертывания:
138 +
139 +* TALISMAN_ENABLED по умолчанию имеет значение False. Установите для этого параметра значение True
140 +* TALISMAN_CONFIG содержит фактическое определение политики
141 +
142 +При работе в продуктивном режиме Cloud BI при запуске проверяет наличие настройки политики. Если она не будет найдена, то система выдаст предупреждение, что есть угроза безопасности. Для сред, в которых политики безопасности определены вне Cloud BI с помощью другого программного обеспечения, администраторы могут отключить это предупреждение с помощью ключа {{code language="none"}}CONTENT_SECURITY_POLICY_WARNING{{/code}} в config.py.
143 +
144 +=== Требования к политике безопасности контента ===
145 +
146 +Требования следующие:
147 +
148 +* Укажите ключевые слова {{code language="none"}}'unsafe-eval'{{/code}} и {{code language="none"}}'unsafe-inline'{{/code}}
149 +
150 +{{code language="none"}}
151 +default-src 'self' 'unsafe-eval' 'unsafe-inline'
152 +{{/code}}
153 +
154 +* Некоторые дашбоарды загружают изображения с использованием URI данных
155 +
156 +{{code language="none"}}
157 +img-src 'self' data:
158 +{{/code}}
159 +
160 +* Диаграммы MapBox используют воркеры и должны подключаться к серверам MapBox
161 +
162 +{{code language="none"}}
163 +worker-src 'self' blob:
164 +connect-src 'self' https://api.mapbox.com https://events.mapbox.com
165 +{{/code}}
166 +
167 +Ниже пример TALISMAN_CONFIG, который реализует вышеуказанные требования, использует {{code language="none"}}'self'{{/code}} для ограничения содержимого тем же источником, что и сервер Cloud BI, и запрещает устаревшие элементы HTML, устанавливая для object-src значение {{code language="none"}}'none'{{/code}}.