2014-02-16 6 views
-1

Предполагая, что мы разрешили междоменные запросы Ajax.Уточнение в вопросах безопасности Cross-Ajax

Код будет выглядеть примерно так:

$.post('http://google.com/get/emails/all', function(emails){ 
      // I can see your emails 
      readAllEmails(emails); 
    }); 

Каковы риски безопасности с этим вызовом, не mail.google.com просто отказать в просьбе, и это будет конец Это?

Редактировать Чтобы уточнить этот вопрос.

В приведенном выше сценарии cookie отправляется на адрес mail.google.com. это все файлы cookie, которые ваш браузер в настоящее время хранит или это только файлы cookie домена? Если все его файлы cookie, то я понимаю, почему проблемы с перекрестными доменами ajax являются проблемой. Однако, если это так, я не понимаю, почему браузер отправил все файлы cookie, в чем преимущество?

+1

Где вы это взяли из? Это не то, что делает междоменный AJAX. – Christophe

+2

Ваше понимание серьезно испорчено. Страницы из плохого сайта Джона Доу * не могут * делать вызовы AJAX на mail.google.com'. Это будет нарушением * той же политики происхождения, поэтому оно запрещено.Междоменный AJAX разрешен только сайтами, на которых размещаются объекты, которые не нарушают конфиденциальность или имущество кого-либо. Google Mail не такой сайт, но (с некоторыми ограничениями) Google Maps может быть примером того, что есть. – Pointy

+0

@Pointy Я обновил свой вопрос. Первая часть моего вопроса была предназначена для другого вопроса, который я собирался задать. –

ответ

3

Посторонние вызовы AJAX по умолчанию отклоняются из-за политики одинакового происхождения в браузерах. Это означает, что веб-страница, загруженная с yourdomain.com, выполняющая JavaScript, не может совершать вызовы AJAX до mail.google.com или других доменов за пределами yourdomain.com.

Modern browsers позвоните в другие домены AJAX с помощью Cross Origin Resource Sharing (CORS). Это позволяет другому сайту, например www.publicapi.com, разрешать запросы на перекрестный домен через AJAX, указав заголовки Access-Control- для разрешенных доменов и методов. Эти запросы CORS работают в контексте ограниченного доступа и не будут получать/устанавливать файлы cookie для www.pulicapi.com или HTTP-авторизации.

Некоторые браузеры разрешают включать файлы cookie/авторизацию через заголовок Access-Control-Allow-Credentials, но это опасно для большинства приложений.

В частности, если HTML на yourdomain.com пытается получить доступ к mail.google.com через AJAX, это не удастся. Если mail.google.com разрешил доступ CORS для некоторых API-интерфейсов, вы можете читать общедоступные данные, но не быть аутентифицированными с помощью файлов cookie или HTTP-авторизации. Если mail.google.com установили Access-Control-Allow-Credentials заголовки, ваш браузер поддержал его, и у вас был уже существующий сеанс на mail.google.com, вы могли бы сделать запросы AJAX в качестве вашего входа в систему.

Это серьезная угроза безопасности для Почты Google и никогда не будет включена. Однако для общедоступных API-интерфейсов или, по существу, публичных данных CORS может использовать перекрестный домен AJAX.

+0

Мой вопрос больше о том, что представляет собой риск для безопасности, но @zerkms ответил, что, говоря, что отправленные файлы cookie являются куки-файлами, принадлежащими запрашиваемому веб-сайту, в отличие от запроса веб-сайта. Это в основном отвечало на мой вопрос. Я все еще не понимаю, почему браузеры отправляют запрашивающие файлы cookie, а не куки-файлы-запросы. Мне также хотелось бы, чтобы писать о куках в целом. –

1

это все файлы cookie, которые ваш браузер в настоящее время хранит или только файлы cookie домена?

Просто домен. Отправка файлов cookie всех доменов будет катастрофой.

Во всяком случае, я думаю, что здесь та же тема:

Why the cross-domain Ajax is a security concern?

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

  • Нет связанных вопросов^_^