У меня есть сервер Express со следующей конфигурацией шлем-csp (промежуточное программное обеспечение, управляющее политиками безопасности содержимого для предотвращения уязвимостей, таких как XSS и внедрение кадров):
server.use(csp({
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'", '*.google-analytics.com'],
imgSrc: ["'self'", '*.google-analytics.com'],
connectSrc: ["'none'"],
styleSrc: ["'self'", "'unsafe-inline'", 'maxcdn.bootstrapcdn.com'], // Remove unsafe-inline for better security
fontSrc: ["'self'"],
objectSrc: ["'self'"],
mediaSrc: ["'self'"],
frameSrc: ["'self'"]
}
}));
У меня также естьв моем корне файл browserconfig.xml со следующим содержимым:
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square70x70logo src="/mstile-70x70.png"/>
<square150x150logo src="/mstile-150x150.png"/>
<square310x310logo src="/mstile-310x310.png"/>
<wide310x150logo src="/mstile-310x150.png"/>
<TileColor>#da532c</TileColor>
</tile>
</msapplication>
</browserconfig>
Как вы можете видеть, это простой XML-файл без данных изображения, тем более SVG.И все же, когда я пытаюсь нажать https://www.schandillia.com/browserconfig.xml,, в консоль выдается следующее:
Отказался загружать изображение 'data: image / svg + xml, http://www.w3.org/2000/svg' fill ='% 23909090 'width = '10' height = '10 '>', поскольку оно нарушает следующую директиву политики безопасности контента: "img-src 'self' * .google-analytics.com".
Обратите внимание, что содержимое файла XML также отображается на экране браузера.Меня смущает только ошибка консоли.Где файл изображения, на который жалуется мой сервер?
PS : есть ли способ разрешить только этот конкретный SVG (что бы это ни было, при условии, что это безопасно и незлонамеренный, исходящий из такого легитимного источника, как www.w3.org) в моей директиве imgSrc
?Я попытался изменить мой server.csp()
, но он не сработал:
server.use(csp({
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'", '*.google-analytics.com'],
imgSrc: ["'self'", 'data:', '*.google-analytics.com'],
connectSrc: ["'none'"],
styleSrc: ["'self'", "'unsafe-inline'", 'maxcdn.bootstrapcdn.com'], // Remove unsafe-inline for better security
fontSrc: ["'self'"],
objectSrc: ["'self'"],
mediaSrc: ["'self'"],
frameSrc: ["'self'"]
}
}));
Что это за загадочный объект и как заставить его перестать беспокоить браузер?