javascript - 可以在没有 API 的情况下在 iframe 中打开 instagram

标签 javascript html css

另一种在没有 API 的情况下在 iframe 标签中打开 instagram 的方法

最佳答案

您始终可以通过以下方法检查 IFrame 中是否允许特定 Origin 的任何 url(example.com):

function isAllowededByXFrameOption({ header, origin }) {
  if (header["X-Frame-Options".toLowerCase()]) {
    let options = header["X-Frame-Options".toLowerCase()].toLowerCase();
    if (options === "SAMEORIGIN".toLowerCase()) {
      return false;
    } else if (options === "DENY".toLowerCase()) {
      return false;
    } else if (~options.indexOf("ALLOW-FROM".toLowerCase())) {
      let allowedOrigins = options.split(" ").slice(1);
      return allowedOrigins.find(
        _o => url.parse(_o).host === url.parse(origin).host
      );
    }
  }
  if (header["Content-Security-Policy".toLowerCase()]) {
    let _options = header["Content-Security-Policy".toLowerCase()];
    let CheckOriginInSource = source_name => {
      _options = _options.split(";");
      _options = _options.find(_o => _o.indexOf(source_name) > -1);
      _options = _options.split(" ").slice(1);
      return _options.find(_o => url.parse(_o).host === url.parse(origin).host);
    };
    if (_options.indexOf("frame-src") > -1) {
      return CheckOriginInSource("frame-src");
    } else if (_options.indexOf("child-src")) {
      return CheckOriginInSource("child-src");
    } else if (_options.indexOf("default-src")) {
      return CheckOriginInSource("default-src");
    } else {
      return true;
    }
  } else {
    return true;
  }
}
const got = require("got");
const metascraper = require("metascraper")([
  require("metascraper-author")(),
  require("metascraper-date")(),
  require("metascraper-description")(),
  require("metascraper-image")(),
  require("metascraper-logo")(),
  require("metascraper-clearbit-logo")(),
  require("metascraper-publisher")(),
  require("metascraper-title")(),
  require("metascraper-url")()
]);
const Domain = "example.com";
(async () => {
     const { body: html, url, headers } = await got(Domain);
     const metadata = await metascraper({ html, url });
     const isAllowed = isAllowededByXFrameOption({
                        header: headers,
                        origin: "www.app4pc.com"
                    })
})();

关于javascript - 可以在没有 API 的情况下在 iframe 中打开 instagram,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58455901/

相关文章:

html - 选择单选按钮多个背景图像

javascript - 千位输入掩码 : Make Caret Position Move

css - 滚动自定义控件内容 - xpages

javascript - 使用 Google 服务帐户访问团队组织内的 Google 云端硬盘文件夹

javascript - 绑定(bind)事件以在模板内选择模板中的选项

javascript - 如何单击一个 div 并让它更改其他 div 的尺寸,然后再次单击后更改回来

php - Controller 必须返回响应(给定为空)。您是否忘记在 Controller 中的某处添加返回语句?请

javascript - 从 jsp 中的 Link 调用 Ajax 函数 [a href= onclick =""]

javascript - 使用字符串填充表格元素

html - div 类的 CSS 不起作用 - 为什么?