本文详细介绍了如何在QuickNode上设置请求来源白名单,以提高应用程序的安全性。通过详细的步骤和示例,读者可以了解referrer白名单的定义、设定方法及其重要性,并获得一些额外的资源链接以提升安全性。
安全性是开发应用程序时最重要的方面之一。如果一个资源,如一个端点,落入未授权的个人手中,它可能会耗尽你的限制和资源。在本指南中,我们将看到如何避免这种情况,并学习如何在 QuickNode 端点上设置引荐者白名单。
信息
引荐者白名单安全功能仅对 Build 计划 或更高级别的用户可用。
首先,让我们澄清什么是 referrer。在 HTTP 标准中,“referrer” 通常拼写为“referer”。它是 HTTP 请求头的一部分,指示网络请求的来源,通常指向链接到请求资源的网页。此信息有助于服务器识别请求的来源。
在 QuickNode 的上下文中,引荐者白名单是一项至关重要的安全功能,允许构建去中心化应用程序 (dApps) 的开发人员指定哪些域被允许对他们的端点发出请求。想象一下,你正在开发一个与区块链交互的 dApp,使用你的 QuickNode 端点。当你的代码库托管在 GitHub 等平台上时,你活动的 QuickNode 端点 URL 可能会变得公开可访问。如果有人获取了此 URL,他们可能会对你的端点发出未经授权的调用,导致你没有发起的过度使用。
这就是 QuickNode 的 Referrer Whitelist 功能变得有价值的地方。通过将引荐者列入白名单,你可以限制请求仅来自特定域,拒绝所有其他请求。这确保只有来自已批准来源的合法请求会被你的端点处理。
实施引荐者白名单增强了你应用程序的安全性,并有助于防止对你的 QuickNode 端点的未经授权的访问。
让我们看看如何在 QuickNode 中设置引荐者白名单。首先,你需要访问一个端点。如果你还没有,可以通过 这里 注册一个免费的 QuickNode 账户,设置一个端点。
设置好端点后,访问该端点的 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 |
现在,只有直接从 https://etherflow.quiknode.io/ 发出的请求会得到响应。让我们测试一下!
EtherFlow 是一个工具,可以更容易地向端点发送 RPC 调用。因此,我们将使用 EtherFlow 域作为列入白名单的引荐者。如果你也想使用它,请随时按照以下步骤操作:
正如你所看到的,现在该端点在该域上响应得非常好。让我们尝试对我们的端点进行 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 错误。它只会回应那些来自列入白名单的引荐者的请求。
使用此功能时,你必须确保你的网站发送到端点的所有请求都将 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"}'
正如你所看到的,端点没有任何错误地响应。
此安全功能对于阻止对你端点的未经授权访问非常重要。然而,值得注意的是,白名单引荐者并不是万无一失的。如果有人拥有你的端点 URL 并知道列入白名单的引荐者,他们可能会访问你的端点。
另一个值得注意的安全功能是管理身份验证Token的能力。如果你怀疑有人访问了你的端点 URL,你可以生成新Token并删除现有Token。此举将使旧的端点 URL 失效。
有关增强端点安全性的信息,请考虑探索以下指南。这些资源提供了有关保护你的 QuickNode 端点的有价值的见解和最佳实践。
在本指南中,我们学习了如何在 HTTP 请求中正确设置 Referrer Header 以利用 QuickNode 的引荐者白名单功能,确保安全且经过授权地访问你的端点。
订阅我们的 时事通讯,获取更多关于以太坊的文章和指南。如果你有任何反馈,请随时通过 Twitter 与我们联系。你可以随时在我们的 Discord 社区服务器上与我们聊天,那里的开发者都是你见过的一些最酷的人 :)
告诉我们如果你有任何反馈或对新主题的请求。我们会很高兴听到你的声音。
- 原文链接: quicknode.com/guides/qui...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!