В Вконтакте загрузка файлов идёт в три этапа. Получение url на клиенте, отправка файла и урл на сервер, а потом сервер получив данные от ВК отдаёт их клиенту для сохранения. Отправку файлов из клиента делает невозможным cors браузера.
Соответственно хотелось бы сделать проксирование запросов на сервера через nginx, чтобы нагружать сервер по минимуму.
Однако при проксировании нужно удостоверится что url действительно относится к Вк, для этого нужно post переменную с url'ом сверить с списком доменов вк
Домены
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-http-request-headers-from domain="vk.com" headers="*"/>
<allow-http-request-headers-from domain="*.vk.com" headers="*"/>
<allow-http-request-headers-from domain="userapi.com" headers="*"/>
<allow-http-request-headers-from domain="*.userapi.com" headers="*"/>
<allow-http-request-headers-from domain="vk.me" headers="*"/>
<allow-http-request-headers-from domain="*.vk.me" headers="*"/>
<allow-http-request-headers-from domain="vkontakte.ru" headers="*"/>
<allow-http-request-headers-from domain="*.vkontakte.ru" headers="*"/>
<allow-http-request-headers-from domain="*.vk-cdn.net" headers="*"/>
<allow-access-from domain="vk.com" to-ports="80"/>
<allow-access-from domain="*.vk.com" to-ports="80"/>
<allow-access-from domain="vk.me" to-ports="80"/>
<allow-access-from domain="*.vk.me" to-ports="80"/>
<allow-access-from domain="userapi.com" to-ports="80"/>
<allow-access-from domain="*.userapi.com" to-ports="80"/>
<allow-access-from domain="vkontakte.ru" to-ports="80"/>
<allow-access-from domain="*.vkontakte.ru" to-ports="80"/>
<allow-access-from domain="*.vk-cdn.net" to-ports="80"/>
<allow-access-from domain="vk.me" to-ports="443"/>
<allow-access-from domain="*.vk.me" to-ports="443"/>
<allow-access-from domain="app.vk.com" to-ports="443"/>
<allow-access-from domain="*.vk-cdn.net" to-ports="443"/>
</cross-domain-policy>
И возможно сделать проверку по секретному ключу.
Вопрос реально ли это реализовать, если да то как? И на сколько решение будет быстрее работать в nginx нежели если бы запрос пропускался через ноду или пхп?