Я разработал небольшой прокси изображений в node.js (expressjs). Этот прокси должен уменьшить все изображения, которые поступают с моего сайта «www.myUrl.com». Это также хорошо работает до сих пор. Но я хотел бы защитить прокси-сервер от несанкционированного доступа. То есть, как только изображение загружается через прокси из другого URL-адреса, должно быть возвращено сообщение об ошибке «unauthorized» или null .... я уже пытался прочитать заголовок «происхождение» через req.headers.origin
, но это было пусто:Как я могу сделать сервер Nodejs express.js (proxy) доступным только для определенного домена?
console.log(JSON.stringify(req.headers))
показывает это:
{
"host":"myImageProxyUrl.com",
"user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/54.0.2840.100Safari/537.36","accept":"image/webp,image/*, */*; q=0.8",
"accept-encoding":"gzip, deflate, sdch, br",
"accept-language":"de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4",
"connection":"keep-alive",
"referer":"https://myUrl.de/myPage",
"x-forwarded-for":"ip1,ip2",
"x-forwarded-proto":"https, https",
"x-mod-original-region":"joyent-eu-ams-1.onmodulus.net",
"x-mod-region":"aws-us-east-1a.onmodulus.net"
}
прокси размещен на modulus.io. «www.myUrl.com» - приложение Meteor.js.
Как я могу сделать прокси доступным только для домена «www.myUrl.com»?
Спасибо.
Update:
Изображение просто загружается поверх тега изображений в клиенте:
<img src='http://myImageProxyUrl.com/imageXY.png' />
предоставляют метод аутентификации для доступа к прокси. Как и любой прокси-сервер, вызывающий URL-адрес, должен иметь некоторый токен, если нет, то его несанкционированный – AJS
Но этот токен затем отображается на клиенте и может быть скопирован, правильно? – laren0815
Для этого используйте некоторые методы шифрования, чтобы вы могли передавать зашифрованный токен. Или вы можете проверить заголовок запроса на своем сервере, как if (request.headers.host == 'www.myUrl.com') {продолжить} else {несанкционированное сообщение} – AJS