首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有可能以可靠的方式验证主机名?

是否有可能以可靠的方式验证主机名?
EN

Stack Overflow用户
提问于 2021-04-19 07:47:31
回答 1查看 25关注 0票数 0

我有一个云函数,我希望只有当请求来自我的域时才会调用它。

代码语言:javascript
复制
export const createMatch = functionUS.https.onCall(async (data, context) => {
  if (context.auth === null || context.auth?.uid == null || data?.userId !== context.auth?.uid)
    throw new functions.https.HttpsError("unauthenticated", "not authenticated");

  try {
    const user = await admin.auth().getUser(context.auth.uid);
    if (!user.displayName) throw new functions.https.HttpsError("failed-precondition", "username is missing");
    data.username = user.displayName;

    const matchRepo = new MatchRepository(new FirestoreMatchProvider("matches"));
    const match = Match.fromMap(new Map<string, any>(Object.entries(data)));
    if (!match.isValid()) throw new functions.https.HttpsError("failed-precondition", "match data is not valid");
    await matchRepo.createMatch(match, context.auth.uid);
  } catch (error) {
    functions.logger.error(`handleMatchCreate: ${error}`);
  }
});

我注意到express有主机名选项,我可以从上下文中获取它,但这只是主机名的头。据我所知这可能是伪造的。有没有办法让我知道这些请求是否来自我的域名?

因为有人可以查看代码并获得我的firebase配置,然后为自己创建一个应用程序,该应用程序只在他想要的时候发送请求。这不是我想要的。

EN

Stack Overflow用户

回答已采纳

发布于 2021-04-19 15:14:46

它是HTTP协议的一部分,你不能改变它。简单地说,不要依赖于网络层(DNS和IP)。你不能再做更多了

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67154465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档