在航班上进行iframe原点检查

时间:2019-05-13 02:54:33

标签: node.js express iframe cors

我正在构建一个基于NodeJS + Express JS开发的应用程序。该应用程序将提供一个页面,其中包含针对特定企业的在线商店。商店的所有者可以使用iframe将其商店页面嵌入到其网站中,但他们也希望能够根据域列表来限制谁可以将其商店嵌入到网站中。

我尝试使用Node Js的CORS模块,但是这需要在飞行中进行,因为用户将在iframe中放置类似“ https://mytestdomain.com/embed-shop/embedshopid”的网址。通过embedshopid,我检查商店配置并确定要呈现的内容,但是当我尝试通过req.hostname访问原始域时,它将返回我分配/呈现应用程序的域,而不是iFrame请求页面的域。来自。

有没有一种机制可以在飞行中进行检查?

示例代码:

app.get('/embed-shop/:shopId', async function(req, res) {
  let originDomain = req.hostname;
  let embedConfig = await myService.getShopConfig(req.params.shopId);
  if (embedConfig.domains.indexOf(originDomain) > -1) {
    res.render('myshopTemplate', {shopConfig: embedConfig});
  } else {
  return res.send("your domain is not allowed to embed this shop")      
  }
})

0 个答案:

没有答案