我的MEAN堆栈应用程序显示来自各种来源的图像。当应用程序通过https提供时,我创建了一个简单的代理服务器来提供图像以避免混合内容"警告。
该路线接受图像的编码网址以进行获取:
router.get('/images/:url',function(req, res) {
var url = decodeURIComponent(req.params.url);
request.get(url).pipe(res);
});
但是,我不希望这种情况被滥用。我只希望我的应用程序能够使用此功能。我该如何添加这层安全性?
答案 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