简体中文

开发者工具 · Base64 编码器和解码器

在线解码 Base64 令牌:为什么该工具应在浏览器中运行

· 为什么它很重要

base64 隐私

在浏览器选项卡中本地解码的令牌,在“网络”面板中看不到网络请求
原始 ToolAcre 矢量图

许多在线解码器将您的输入发送到服务器,这意味着您粘贴的每个令牌、凭据和有效负载都会被公开。这篇文章解释了什么泄漏、如何验证工具是否保持在本地以及为什么 ToolAcre 的解码器以这种方式工作。

通过陌生人服务器的 API 密钥 — 将令牌粘贴到表单发布解码器中实际传输的内容

工程师需要检查 Base64 编码的 JWT 或 API 响应来调试系统。他们打开自己喜欢的搜索引擎,找到在线解码器工具,并将令牌粘贴到其输入字段中。该工具立即显示解码后的有效负载,工程师即可继续工作。他们没有看到传输到服务器的内容:整个令牌及其包含的每个凭证、声明和个人详细信息。该请求被记录下来,存储在服务器访问日志中,可能由代理缓存,并且对监控网络流量的任何人都绝对可见。

随意选择使用在线解码器已向他们无法控制的服务泄露了生产令牌。这篇文章解释了当您粘贴到远程解码器时会发生什么泄漏,如何验证工具是否保留在本地,以及为什么 ToolAcre 解码器在浏览器中工作,以便您的秘密永远不会传输到服务器。 JWT (JSON Web 令牌) 包含由点分隔的编码声明。解码后,中间部分通常会显示用户 ID、电子邮件地址、角色、问题时间,有时还会显示 API 密钥或会话标识符。

Base64 有效负载通常包含的内容 — 凭证、JWT 声明、会话数据和个人信息

API 响应中的 Base64 负载可能包含文件上传、签名或部分加密密钥。所有这些都是敏感数据,不应离开您的设备。然而,当开发人员从终端或 HTTP 响应复制此类值并将其粘贴到在线解码器以快速读取内容时,该值会直接发送到远程服务器。如果解码器处理许多用户,一台服务器可能会积累数千个令牌和有效负载的数据库。

即使服务器在处理后删除它们,它们也会被记录下来,在传输过程中可见,并且可能被其他服务拦截或存储。服务器往返解码器和选项卡内解码器之间的区别是绝对的。网页上的表单需要 POST 或 GET 请求来解码您的输入,这意味着您的数据将传输到远程服务器。即使服务器是诚实的并立即删除数据,流量也会暴露。代理、负载均衡器、监控系统和 TLS 终止点都会看到该请求。

两种架构:服务器往返与选项卡内解码 — 字节在每个架构中的位置以及谁可以记录它们

如果服务器不诚实或者受到威胁,您的令牌现在将存储在属于其他人的数据库中。选项卡内解码器意味着根本不发送任何请求。您输入的文本、粘贴的 Base64 字符串以及解码结果都保留在您设备上的浏览器中。不联系服务器,没有第三方看到数据,浏览器自己的 JavaScript 进行转换。自行检查需要一分钟,并且只需要浏览器内置的网络面板。

在新选项卡中打开 Base64 编码器和解码器,打开开发人员控制台(在大多数浏览器中为 F12),然后单击“网络”选项卡。确保列表为空或单击清除按钮。现在将示例令牌或 Base64 字符串粘贴到解码器中,然后单击“解码”。仔细观察网络面板。如果它完全为空并且没有出现新请求,则解码发生在浏览器本地。如果出现对服务器的请求,则该请求携带您的数据。

如何在网络面板中检查自己 - 在粘贴时观察请求,以及安静的面板证明了什么

或者,打开页面源 HTML 或 JavaScript(右键单击,查看页面源)并搜索表单发布或获取的位置。如果它发送到的远程端点与加载页面的域不同,则您的输入将离开设备。快速网络面板检查可证明解码器是本地还是远程。当您解码某些内容时,严格的本地工具不会发出任何请求。没有使用您的输入作为参数的 GET 请求,没有使用表单数据的 POST,也没有对 API 的 fetch 调用。

操作期间面板保持完全空状态。这并不难伪造;一个聪明的工具可以在本地解码并将您的数据发送到跟踪服务器。这就是为什么检查内容安全策略也很重要。严格的内容安全策略(在“网络”面板的响应标头选项卡中可见)排除了多种类型的外部调用。禁止外部脚本、字体和图像并且不允许将表单发布到任意端点的策略限制了恶意或受损页面的行为。

为什么没有分析和第三方脚本也很重要 - 严格的内容安全策略如何排除静默渗漏

CSP 并不是绝对的保证,但与网络检查相结合,它是该工具正在执行其声称的功能的有力证据。要进行完整验证,请解码示例令牌,同时观察三件事:网络面板、外部请求的页面源和 CSP 标头。

不发出请求、不包含第三方 JavaScript 并声明禁止进一步加载的严格 CSP 的页面比允许一切的页面更难受到攻击。 Base64 编码器和解码器使用这种方法:操作在设备上的 Web Worker 中运行,该站点具有严格的 CSP,禁止外部代码,并且页面在解码时不会发出网络请求。

工作示例:在网络面板打开的情况下解码示例令牌 - 没有请求,没有存储,之后没有任何可删除的内容

您可以在网络面板、浏览器控制台和页面源代码中自行审核,然后相信您自己的观察而不是工具隐私承诺。更广泛的背景很重要,因为并非所有令牌泄漏都来自恶意解码器。如果扩展程序遭到破坏或恶意,则监视所有流量和日志请求的浏览器扩展程序可以看到您粘贴到诚实本地工具中的内容。为方便起见,存储每个复制和粘贴操作的剪贴板管理器可以保留您的令牌。

肩窥,即在您工作时有人观看您的屏幕,直接捕获解码值。这些超出了任何网络工具的控制范围。解码器本身无法防止扩展级访问或物理观察。但它可以而且必须消除服务器往返暴露。如果您要将真实的生产令牌粘贴到任何内容中,则该工具必须在本地运行。使用本地解码器还是远程解码器的决定是一种随着时间的推移而复杂化的安全选择。使用远程解码器一次意味着一个令牌被暴露并且一台服务器拥有数据。

这不包括浏览器扩展、剪贴板管理器和肩冲浪,这些都超出了任何网络工具的控制范围

定期使用远程解码器意味着数百个令牌流经您无法控制的服务器。习惯将敏感值粘贴到在线工具中的开发人员逐渐训练自己这是可以接受的,从而使暴露正常化。切换到本地解码器可以完全消除工具级别的暴露。它不能解决其他问题,例如出现在日志或聊天历史记录中的令牌,但它消除了一种可控的泄漏源。验证工具是否处于本地状态是检查可观察结果的问题,而不是信任声明的问题。

网络面板流量、页面源代码、HTTP 标头和浏览器控制台错误都提供了证据。当一个工具声称是本地的,但你没有办法验证它时,怀疑是有道理的。 ToolAcre Base64 编码器和解码器完全在您的浏览器中运行,解码时不会发出任何请求。您可以打开“网络”选项卡,粘贴真实令牌,对其进行解码,然后看不到传出请求。解码后的值仅显示在您的浏览器中。它不会存储在任何服务器上,不会发送到分析,不会记录在任何地方,但如果您再次访问并且页面被缓存,则会记录在浏览器缓存中。

要点:在数据已存在的位置进行解码 — Base64 编码器和解码器如何完全在浏览器中运行,无需帐户且无需上传

在本地解码,您的令牌仍然属于您。实用的建议很简单。当您需要解码 Base64 令牌或 JWT 时,请使用在浏览器中本地运行的工具。通过打开“网络”面板并在解码时进行检查来验证它没有发出请求。如果您发现有发布到服务器的在线工具,请停止使用它。切勿将生产令牌、API 密钥或任何敏感数据粘贴到数据传输到远程服务器的工具中。存储短期代币并定期轮换长期代币,以最大程度地减少暴露窗口。

对于 ToolAcre Base64 编码器和解码器,您粘贴的令牌和凭据保留在选项卡中,您可以通过快速查看网络面板来自行确认。