Предотвратить запрос XMLHttpRequest к другому домену? - PullRequest
1 голос
/ 26 февраля 2020

Я хочу административно предотвратить целый класс атак XSS, не позволяя ничему на моей странице отправлять запросы XHR / XMLHttpRequest (или другие?) на другие домены, кроме домена, на котором размещена страница. Это возможно?

Я думал, что смогу сделать это с Cross-Origin Resource Sharing (CORS) , но, похоже, я ошибся. Если страница, размещенная на domain-a.com, пытается отправить XHR-запрос к domain-b.com, CORS можно использовать на страницах domain-b.com , чтобы контролировать, разрешено это или нет.

Так что, если что-то на странице на domain-a.com попытается сделать XHR-запрос к hackers-r-us.com, который будет разрешен, при условии, что hackers-r-us.com установит соответствующий CORS headers.

Но есть ли что-то, что я могу установить на странице на domain-a.com, чтобы запретить запросы к другим доменам, таким как hackers-r-us.com, независимо от заголовков CORS на hackers-r-us. ком?

1 Ответ

2 голосов
/ 26 февраля 2020

Политика безопасности содержимого (CSP) , в частности директива connect-src CSP.

Директивы CSP указываются с использованием заголовка HTTP Content-Security-Policy и применяются принудительно по браузерам. Простейший пример заголовка, в котором указана директива connect-src, будет выглядеть так:

Content-Security-Policy: connect-src 'self';

Если вы подаете документ на https://example.com/foo/ с этим, браузеры заблокируют любой интерфейс JavaScript в документе из отправка запросов на URL-адреса любого источника, кроме его собственного ('self'); то есть браузеры будут ограничивать разрешенные запросы только URL-адресами, начинающимися с https://example.com.

...