Зачем REST API нужен CSP?

Я пытаюсь лучше понять политику безопасности контента. Насколько я понимаю, они представляют собой инструкцию для браузера о том, откуда разрешено загружать определенные части страницы - изображения, мультимедиа, сценарии и т. д.

Но я не могу понять, зачем серверу, цель которого — отвечать на запросы данных — JSON например — нужен CSP. Он предоставляет данные только для использования другими сторонами. Браузер не задействован.

Так зачем же REST API нужен CSP? Я правильно понимаю первый абзац?

CSP также может указать, какие исходные домены разрешены и требуется ли TLS.

Nick is tired 27.04.2024 21:11

Здесь уже есть хороший ответ на вопрос: stackoverflow.com/questions/68886438/…

Halvor Sakshaug 29.04.2024 09:51
SQL Injection: Атаки в реальной жизни и как это вредит бизнесу
SQL Injection: Атаки в реальной жизни и как это вредит бизнесу
Один-единственный вредоносный запрос может нанести ущерб вашему бизнесу. Уязвимости вашего кода могут привести к:
0
2
103
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как упомянул @Nick в разделе комментариев, CSP может указывать разрешенные домены, и для этого необходим TLS. Но, кроме того, даже если ваш API не требует запроса от браузеров, к нему можно получить доступ из браузеров.

Если вы не укажете CSP, вы не разрешите доступ к вашему сайту из браузеров, которые отказываются обслуживать неуказанные серверы.

Предполагая, что ваш API находится на домене1, а у меня есть домен2, где я хочу запрашивать конечные точки с вашего сервера, вы исключаете мой домен2 из этого на стороне клиента и заставляете таких третьих лиц отправлять свои запросы со стороны сервера. , что может быть для них невыполнимо. Если это намеренно, то все хорошо. Но если вы хотите, чтобы моему домену было разрешено запрашивать API вашего домена из любого приложения, браузера или нет, вам необходимо указать это.

Если вы хотите разрешить запросы из любого источника, вам также необходимо указать CSP соответствующим образом.

Таким образом, речь идет не о том, можно ли запрашивать ваш API из других источников, кроме браузеров, а о том, хотите ли вы разрешить доступ к вашему сайту из клиентских запросов от браузеров, хотите ли вы обеспечить соблюдение TLS и тому подобное.

Это может помочь сделать сайты более безопасными, поскольку на сайте, выдающем себя за другое лицо, клиентские браузеры не могут отправлять запросы API с реального сайта. Запросы должны исходить от самого поддельного сервера, и его IP-адрес появится в журналах сервера реального сайта. Он также блокирует подключение к другому серверу и перехват части его контента для показа вашей собственной рекламы.

Dave S 27.04.2024 21:40

Во втором абзаце должно быть написано «отказаться от обслуживания неуказанных серверов»?

barry 30.04.2024 10:17

@Барри, да, действительно. Спасибо за указание на это, соответственно отредактировал мой ответ.

Lajos Arpad 30.04.2024 17:58

Должен ли третий абзац читать «с вашего сервера», а не «из вашего браузера»?

barry 02.05.2024 09:39

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