保护简单的图像代理服务

时间:2016-05-27 13:01:24

标签: node.js express proxy

我的MEAN堆栈应用程序显示来自各种来源的图像。当应用程序通过https提供时,我创建了一个简单的代理服务器来提供图像以避免混合内容"警告。

该路线接受图像的编码网址以进行获取:

  router.get('/images/:url',function(req, res) {
    var url = decodeURIComponent(req.params.url);
    request.get(url).pipe(res);
  });

但是,我不希望这种情况被滥用。我只希望我的应用程序能够使用此功能。我该如何添加这层安全性?

1 个答案:

答案 0 :(得分:0)

您可以查看HTTP访问控制(CORS)标头。

  

当资源从与第一个资源本身所服务的域不同的域请求资源时,会生成跨源HTTP请求。例如,http://domain-a.com提供的HTML页面会为http://domain-b.com/image.jpg发出src请求。如今,Web上的许多页面都会加载来自不同域的CSS样式表,图像和脚本等资源。

Access-Control-Allow-Origin标题:

返回的资源可能有一个Access-Control-Allow-Origin标头,语法如下:

Access-Control-Allow-Origin: <origin> | *

origin参数指定可以访问资源的URI。浏览器必须强制执行此操作。对于没有凭据的请求,服务器可以指定&#34; *&#34;作为通配符,从而允许任何来源访问资源。

例如,要允许http://mozilla.com访问资源,您可以指定:

Access-Control-Allow-Origin: http://mozilla.com

有关详细信息,请参阅mozilla docs