Я разрабатываю веб-API JSON/REST, для которого я специально хочу, чтобы сторонние веб-сайты могли позвонить мне через AJAX. Таким образом, моя служба посылает знаменитый CORS заголовок:Когда безопасно использовать CORS?
Access-Control-Allow-Origin: *
который позволяет сайты третьих лиц, чтобы назвать мою службу через AJAX. Все в порядке до сих пор.
Однако подразделение моего веб-ави не является общедоступным и требует аутентификации (довольно стандартный материал с OAuth и cookie access_token). Безопасно ли включить CORS на эту часть моего сайта?
С одной стороны, было бы здорово, если бы на сторонних сайтах могли быть клиенты ajax, которые также взаимодействуют с этой частью моего сервиса. Однако причина, по которой вначале существует одна и та же политика происхождения, заключается в том, что это может быть рискованным. Вы не хотите, чтобы какой-либо веб-сайт посещал вас, чтобы иметь доступ к вашему частному контенту.
Сценарий, который я боюсь, заключается в том, что пользователь входит в мой веб-сайт, либо на веб-сайте, либо через веб-сайт, которому он доверяет, и он забывает выйти из системы. Будет ли это позволять каждому другому веб-сайту, который он впоследствии откроет для доступа к своему частному контенту, используя существующую сессию?
Так мои вопросы:
- Является ли это когда-нибудь безопасно включить CORS на непубличной содержание?
- Если сервер с поддержкой CORS устанавливает session_token через файл cookie, будет ли этот файл cookie сохранен в домене сервера CORS или основного сервера веб-страниц?
Обратите внимание, что вы можете отправлять заголовки CORS только на ресурсы, которые вы хотите получить другим пользователям из другого источника. И вы также можете ограничить доступ CORS к только источникам, из которых вы ожидаете использования. –
Idealy, я бы хотел, чтобы все ресурсы были доступны из любого источника, если разрешает безопасность. Пользователь по-прежнему должен предоставить действительные учетные данные. Я просто хочу убедиться, что я не открываю дверь для межсайтовых скриптовых атак со вредоносных сайтов. – Jeroen