ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Access-Control-Allow-Origin




13.10.2011 21:38, anon пишет:
Всем привет.

В ходе работы возникло несколько
вопросов по этому заголовку.

1)Если добавляем:


add_header Access-Control-Allow-Origin  http://127.0.0.1:8055;
add_header Access-Control-Allow-Origin  https://mail.google.com;
add_header Access-Control-Allow-Origin  https://docs.google.com;

То не сервер отдает пустой ответ не
смотря на правильно передающийся Origin.
Если выставить add_header Access-Control-Allow-Origin *;
получаем ответ.

2) Чем чревато все же выставление
Access-Control-Allow-Origin * на весь сайт? В целом
понятно, что 6 соединений из браузера и
все такое, но какую это может нести в
себе реальную угрозу?

Спасибо.

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,216660,216660#msg-216660

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Насколько я помню, в данный момент ни один браузер не поддерживает наличие нескольких заголовков Access-Control-Allow-Origin (а возможно это и задизайнированное поведение). "Чреватость" звездочки для меня самого остается загадкой, в голову приходит только то, что злоумышленник может с любого сайта не только делать GET/POST запросы, но и получать на них ответ. Но при этом из браузера нет доступа к большинству заголовков ответа http://www.w3.org/TR/cors/#handling-a-response-to-a-cross-origin-reчастности, к кукам), так что лично я не вижу никакой потенциальной опасности от звездочки.
Может быть кто-то поправит меня и опасность в звездочке таки есть...

PS: возможно получится проверять заголовок Referer в конфиге (например, с помощью серии директив if) и выставлять нужное значение как-то так:

set $origin "http://mysite.ru";;
if ($http_referer ~* ^http://trusted_domain1\.ru) {
    set $origin "http://trusted_domain1.ru";;
}
if ($http_referer ~* ^http://trusted_domain2\.ru) {
    set $origin "http://trusted_domain2.ru";;
}
add_header Access-Control-Allow-Origin  $origin;

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.