2013-11-23 6 views
3

Мы интегрируем две системы в интрасети, используя CORS как средство совершения AJAX-вызовов через два домена.Является ли CORS плохой практикой?

Это считается плохой практикой? Является ли CORS в целом плохой практикой?

+1

Если бы это было так, W3C не беспокоился бы написать спецификацию для нее :) www.w3.org/TR/cors/ CORS решает настоящую потребность, когда нам нужны два разрозненных веб-сайта для общения друг с другом. Обычно мы используем JSONP в наши дни, но это настоящий взлом. Как только CORS будет хорошо поддержан, он станет стандартным. Просто используйте его с умом! –

+0

Я бы не сказал, что это плохая практика. Это может быть сложно, чтобы заставить его работать правильно с каждым браузером. – aet

+0

@MisterEpic. Обоснование неверно. Flash также имеет спецификацию, но это плохая практика. Java тоже имеет спецификацию, но это плохая практика. О * все * имеет спецификацию. Спецификация не означает автоматически не плохой практики. – Pacerier

ответ

5

CORS - неплохая практика. Это supported во всех основных браузерах, и все больше API поддерживают его. Фактически, если у вас есть общедоступный ресурс, который не находится за брандмауэром, it is safe, чтобы поместить заголовок Access-Control-Allow-Origin: * на ресурс.

Но есть некоторая путаница в отношении роли CORS на сервере. CORS должен диктовать политику перекрестного происхождения для определенного ресурса. Другими словами, заголовки CORS предназначены только для указания, разрешены ли запросы из разных источников. Я думаю, что возникает путаница, потому что серверы иногда используют CORS для того, чтобы диктовать политику безопасности. CORS не является безопасностью. Если у серверов есть ресурсы, которые должны быть защищены от определенных пользователей, небезопасно полагаться исключительно на заголовок Origin, чтобы обеспечить его выполнение. Вашему серверу нужен другой механизм безопасности (например, защита OAuth2 и CSRF).

+2

CORS ** ** - о безопасности, но не в интересах сервера; это в интересах своих пользователей/клиентов. – Pacerier

2

Нет, CORS не считается плохой практикой. Это стандартный способ выполнения междоменных вызовов AJAX (для браузеров, которые его поддерживают). Имейте в виду, что в настоящее время, в зависимости от ваших точных требований, может быть много ошибок, чтобы заставить работать браузер. Например, если вы хотите иметь возможность устанавливать файлы cookie с перекрестными доменами, вы должны пострадать в Internet Explorer.

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

Смежные вопросы