如何使用 QuickNode 设置来源域名白名单

  • QuickNode
  • 发布于 2024-11-03 13:52
  • 阅读 23

本文详细介绍了如何在QuickNode上设置请求来源白名单,以提高应用程序的安全性。通过详细的步骤和示例,读者可以了解referrer白名单的定义、设定方法及其重要性,并获得一些额外的资源链接以提升安全性。

概述

安全性是开发应用程序时最重要的方面之一。如果一个资源,如一个端点,落入未授权的个人手中,它可能会耗尽你的限制和资源。在本指南中,我们将看到如何避免这种情况,并学习如何在 QuickNode 端点上设置引荐者白名单。

信息

引荐者白名单安全功能仅对 Build 计划 或更高级别的用户可用。

什么是引荐者白名单?

首先,让我们澄清什么是 referrer。在 HTTP 标准中,“referrer” 通常拼写为“referer”。它是 HTTP 请求头的一部分,指示网络请求的来源,通常指向链接到请求资源的网页。此信息有助于服务器识别请求的来源。

在 QuickNode 的上下文中,引荐者白名单是一项至关重要的安全功能,允许构建去中心化应用程序 (dApps) 的开发人员指定哪些域被允许对他们的端点发出请求。想象一下,你正在开发一个与区块链交互的 dApp,使用你的 QuickNode 端点。当你的代码库托管在 GitHub 等平台上时,你活动的 QuickNode 端点 URL 可能会变得公开可访问。如果有人获取了此 URL,他们可能会对你的端点发出未经授权的调用,导致你没有发起的过度使用。

这就是 QuickNode 的 Referrer Whitelist 功能变得有价值的地方。通过将引荐者列入白名单,你可以限制请求仅来自特定域,拒绝所有其他请求。这确保只有来自已批准来源的合法请求会被你的端点处理。

实施引荐者白名单增强了你应用程序的安全性,并有助于防止对你的 QuickNode 端点的未经授权的访问。

如何在 QuickNode 中设置引荐者

让我们看看如何在 QuickNode 中设置引荐者白名单。首先,你需要访问一个端点。如果你还没有,可以通过 这里 注册一个免费的 QuickNode 账户,设置一个端点。

QuickNode Ethereum Endpoint

设置好端点后,访问该端点的 Security 部分,并转到 Referrer 部分。

通过点击引荐者开关启用引荐者白名单。然后,输入你想要列入白名单的主机名或域名,排除如 #section/resource 这样的 URL 片段,以及任何用户信息如 username:password。只需输入域名,而不包括 HTTP/HTTPS 协议。你可以查看下面的示例以获取指导:

正确 (✅) 错误 (❌)
etherflow.quiknode.io https://etherflow.quiknode.io/
mysite.example.com https://mysite.example.com/#about
app.example.net app.example.net/resource
docs.yourdomain.org docs.yourdomain.org/resource/page

Whitelist Referrer Section

现在,只有直接从 https://etherflow.quiknode.io/ 发出的请求会得到响应。让我们测试一下!

来自白名单域的调用

EtherFlow 是一个工具,可以更容易地向端点发送 RPC 调用。因此,我们将使用 EtherFlow 域作为列入白名单的引荐者。如果你也想使用它,请随时按照以下步骤操作:

  1. 访问 EtherFlow
  2. 在顶部输入框中输入你的端点的 HTTP 提供者 URL。
  3. 选择一个 Web3 库(Web3.js 或 Ethers.js)。
  4. 从可用选项中选择一种方法。
  5. 点击 Send Request To Node 按钮。

Call From a Whitelisted Domain

正如你所看到的,现在该端点在该域上响应得非常好。让我们尝试对我们的端点进行 cURL 调用。

没有 Referer 头的 cURL 调用

打开你的终端并运行以下命令。不要忘记在下面的 CURL 请求中用你的 QuickNode 端点 URL 替换 <YOUR_QUICKNODE_ENDPOINT_URL> 占位符。

cURL 请求

curl --location '<YOUR_QUICKNODE_ENDPOINT_URL>' \
--header 'Content-Type: application/json' \
--data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}'

正如你所看到的,端点没有响应并给出了 UNAUTHORIZED 错误。它只会回应那些来自列入白名单的引荐者的请求。

Call From a Non-Whitelisted Domain

带有 Referer 头的 cURL 调用

使用此功能时,你必须确保你的网站发送到端点的所有请求都将 Referer HTTP 头设置为你在 QuickNode UI 中列入白名单的内容。例如,如果你在 QuickNode UI 中添加了 example.com,则你的 HTTP 请求应将 Referer Header 设置为 https://example.com,如果你使用 WSS 端点,则 Origin 头必须设置为与你在 UI 中列入白名单的内容完全相同。

让我们尝试进行带有引荐者头的 cURL 调用。

打开你的终端并运行以下命令。不要忘记在下面的 CURL 请求中用你的 QuickNode 端点 URL 替换 <YOUR_QUICKNODE_ENDPOINT_URL> 占位符。同时,将 Referer Header 修改为你的白名单域。

cURL 请求

curl --location '<YOUR_QUICKNODE_ENDPOINT_URL>' \
--header 'Content-Type: application/json' \
--header 'Referer: https://etherflow.quiknode.io' \
--data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}'

正如你所看到的,端点没有任何错误地响应。

Call with a Referer Header

此安全功能对于阻止对你端点的未经授权访问非常重要。然而,值得注意的是,白名单引荐者并不是万无一失的。如果有人拥有你的端点 URL 并知道列入白名单的引荐者,他们可能会访问你的端点。

另一个值得注意的安全功能是管理身份验证Token的能力。如果你怀疑有人访问了你的端点 URL,你可以生成新Token并删除现有Token。此举将使旧的端点 URL 失效。

Auth Token

其他资源

有关增强端点安全性的信息,请考虑探索以下指南。这些资源提供了有关保护你的 QuickNode 端点的有价值的见解和最佳实践。

结论

在本指南中,我们学习了如何在 HTTP 请求中正确设置 Referrer Header 以利用 QuickNode 的引荐者白名单功能,确保安全且经过授权地访问你的端点。

订阅我们的 时事通讯,获取更多关于以太坊的文章和指南。如果你有任何反馈,请随时通过 Twitter 与我们联系。你可以随时在我们的 Discord 社区服务器上与我们聊天,那里的开发者都是你见过的一些最酷的人 :)

我们 ❤️ 反馈!

告诉我们如果你有任何反馈或对新主题的请求。我们会很高兴听到你的声音。

  • 原文链接: quicknode.com/guides/qui...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。