Предоставление Access-Control-Allow-Origin с подстановочным знаком - PullRequest
6 голосов
/ 26 мая 2011

Я создаю страницу, которая отвечает на AJAX-запрос определенной строкой, когда другая определенная строка предоставляется в качестве переменной GET.Чтобы избежать проблем с политикой «того же источника», я обнаружил, что могу включить эту строку PHP в верхней части страницы:

header('Access-Control-Allow-Origin: *');

Никаких конфиденциальных данных не передается, это фактическиключевые слова, передаваемые туда и обратно из нескольких разных доменов (это приложение, связанное с SEO).В связи с этим сотни разных доменов будут использовать его, поэтому, если возможно, я бы хотел не указывать каждый из них.Есть ли риски при использовании этой линии?Если так, то кто они?

Кроме того, если эта страница была размещена по URL-адресу HTTPS, она все еще доступна?

Любые советы, предложения или проблемы приветствуются.Спасибо!

1 Ответ

9 голосов
/ 26 мая 2011

Если доступ действительно публичный, я бы сказал, что это хорошее решение. Однако, если вы хотите ограничить доступ к своему сайту, вы, вероятно, захотите явно указать каждый разрешенный источник домена.

Поскольку вы говорите, что ваш ответ не содержит конфиденциальной информации, вам, вероятно, не нужно беспокоиться о размещении вашего сервиса по HTTPS. Единственная причина, по которой вы можете это сделать, - это если клиентская HTTPS-страница пытается получить доступ к вашей не-HTTPS-службе. В этом случае, я думаю, они получат предупреждение о небезопасной информации, отправляемой / получаемой при вызове вашей службы AJAX, и, возможно, даже просто тихом сбое. Если это достаточно распространенный случай, я бы сказал, заглядывая в сервис HTTPS. Убедитесь, что ваш сертификат HTTPS сертифицирован должным образом, потому что, если браузер клиента не может проверить сертификат, запрос AJAX автоматически завершится неудачей (в отличие от запроса при переходе непосредственно на страницу HTTPS)! Кроме того, я не знаю, как это будет происходить в вашем случае, но всякий раз, когда я работал с HTTPS, мне обычно приходилось настраивать что-то, чтобы они функционировали должным образом.

Короче говоря, я бы начал с HTTP, а затем оценил необходимость HTTPS. Удачи!

...