dash-b · 功能 · 连接

无论你连接的是什么,入口只有一种。

你自己运行的数据库、你上传的文件、你自己服务器上的一个小脚本。它们都是同一张表中的条目,都以同样的方式注册,添加一种新类型只是加一个条目,而不是新开一个界面。

你今天能连接什么

两种形态,加一个文件

直接连接数据库

PostgreSQL、MySQL 或 MongoDB。主机、端口、数据库、用户、密码,TLS 默认开启。只读——dash-b 的任何操作都无法写入你的生产数据。

你自己服务器上的连接器

一个你上传到数据库旁边的 PHP 文件。dash-b 只得到一个地址和一个签名密钥,别无其他:没有主机、没有用户名、没有密码。它是唯一能写入的来源,而这正是原因所在。

一个文件

把电子表格或 CSV 拖到看板上,它就变成一个真正的表,列名从文件中读取,而不是由你去猜。无需注册、无需凭据、无需任何设置。

密码会怎样处理

密钥永远不会回显给你

凭据一旦存储,存储它的表单就无法再把它显示出来。这不是一个设置——它与用已保存的值填充表单的是两段不同的代码,而且是刻意分开的,这样“显示已存储的值”就不会只差一个开关,就能把数据库密码写进一个可能被截屏、共享屏幕或从 DOM 中读出的页面。

这个连接器的存在,是为了让你拥有的最强密钥永远不离开你自己的服务器。

你的数据库凭据留在原本就保存着它们的那台机器的配置文件里。dash-b 只持有一个地址和一个签名,这两样都不会把你的数据库向任何其他人敞开。

登录其他服务

为什么这里没有登录框

连接账户——与连接数据库相对——意味着使用提供商自己的登录页面,在一个独立的窗口中,并由一个代理持有应用密钥,这样 dash-b 既不需要持有、也永远看不到你的密码。

这不是在页面内完成的,而且这不是偏好问题。Google 和 Facebook 都刻意拒绝被嵌入框架:显示在别人文档里的登录表单与钓鱼页面无法区分,而做一个这样的框架只会交付一个空白矩形。

目录已为它们建好,机制也已就位;只是这些连接本身尚未开放,因此设计器不会给你一个选完之后会失败的按钮。等它们开放时,会作为条目出现在与上面所有内容相同的表里。

被测试钉住的两件事

不允许退步的那些检查

  • 任何密钥都不会被回显。一个测试会向每个提供商的每个字段放入一个标记,然后在渲染出的页面中搜索它。
  • 登录应答只有在所有方面都通过验证时才被采信——它的来源、格式、必须携带的一次性值、以及时效——而且这一切都在读取它的任何一个字段之前完成。同一时刻只允许一个登录请求在进行,因此旧请求不可能被后来的消息应答。

两者存在的原因是它们防止的失败是悄无声息的:前者会把密码泄露进截图,后者会让一个链接把别人的账户连到你的账户上。

连接上只是一半。

磁贴可以读取你连接的内容。有了连接器,磁贴还能写入——板上的一个按钮就能往你自己的数据库里添加一行。