Magento 2.1.1 - Повышение безопасности с помощью политики безопасности контента

10

У меня нормально работает магазин с последней версией Magento (в настоящее время 2.1.1), и я пытаюсь улучшить безопасность с помощью политики безопасности контента на Apache 2.4.7 (Ubuntu 14.04). Я удалил все теги <script> со страниц содержимого и создал отдельные файлы .js.

На безопасность Apache я установил:

Набор заголовков Content-Security-Policy "default-src 'self'"

Тем не менее, это не работает. Похоже, сам Magento добавил несколько тегов "<script>". Пример из самых первых строк исходного текста:

<! doctype html>
<html lang = "pt-BR">
<head>
<script>
var require = {
"baseUrl": " http://example.com/pub/static/frontend/Magento/luma/pt_BR "
}; </ script>

Поэтому мне кажется, что для того, чтобы настроить CSP, мне нужно включить «unsafe-inline», что в конце концов не совсем безопасно.

Политика заголовка Content-Security-policy "default-src" self "script-src" self "'unsafe-inline"' unsafe-eval '".

Кто-нибудь знает, как правильно установить Magento с CSP? Спасибо!

Луис Джуниор
источник

Ответы:

0

Простой ответ: извините, это не просто возможно сделать это "безопасным".

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

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

Чтобы ответить на ваш вопрос, это может быть самый простой способ сделать запрос о функции на форуме magento и связать его с некоторыми членами сообщества magento. Потому что также необходимо несколько советов в devdocs для создателей модулей, иначе люди будут регулярно иметь проблемы с модулями, несовместимыми с этим уровнем безопасности.

Извините, если это не тот ответ, который вы ожидаете. Основная проблема, вероятно, заключается в javascript и в том, как он организован, некоторые части могут ожидать его всегда и рано. Кроме того, я не знаю, что еще изменилось в magento2, но в magento 1 были также некоторые другие места, которые транслировались на встроенном JS, они еще могут не быть полностью реорганизованы.

Flyingmana
источник