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