我在node.js(expressjs)中開發了一個小圖像代理。這個代理應該減少來自我的網站「www.myUrl.com」的所有圖片。迄今爲止,這也很有效。但我希望保護代理免受未經授權的訪問。 也就是說,只要通過代理從另一個url加載圖像,就會返回錯誤消息「未授權」或null ...。 我已經嘗試通過req.headers.origin
讀取頭「原點」,但這是空的:如何才能使Nodejs express.js(代理)服務器僅適用於特定域?
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」?
謝謝。
更新:
圖像只裝在客戶端的圖像標籤:
<img src='http://myImageProxyUrl.com/imageXY.png' />
提供身份驗證方法來訪問代理服務器。像任何url調用代理服務器都必須有一些令牌,如果不是那麼它的未經授權 – AJS
但是,這個令牌然後在客戶端可見,可以複製,對吧? – laren0815
爲了使用某種加密技術,您可以傳遞加密的令牌。或者你可以檢查服務器上的請求標題,如if(request.headers.host =='www.myUrl.com'){繼續}其他{未授權消息} – AJS