可以核验,不只是声明
证据
本站声明,你输入的任何数据都不会离开你的设备。你不必相信我们:下面是你自己在三分钟内确认这件事的方法,用网络标签页、飞行模式,以及读一读源代码。
- 三个测试
- 三分钟
- 不用装任何东西
为什么要核验,而不是相信
你将会亲眼确认的东西
每一页顶部的横幅承诺,除了 odersa.org 之外没有任何请求发往别处。一个无法核验的承诺仍然只是承诺。这一个可以核验:接下来的三个测试,除了你浏览器里已经有的东西,什么都不需要。
下面有三个测试:计算过程中的网络标签页、输入途中打开飞行模式、读一读做计算的那段代码。按顺序做或者打乱顺序做都行。用电脑比用手机方便:浏览器的开发者工具在电脑上更容易打开。
第一个测试
计算过程中的网络标签页
这个测试展示的是:就在你把一个数字敲进计算器的那一刻,有什么东西会离开你的设备。
- 打开一个计算器。比如一笔贷款的成本,然后打开浏览器的开发者工具(在页面上右键,或者在电脑上按 F12),切到网络标签页。
- 刷新页面一次。列表会填满:页面、样式表、字体、脚本。如果你的浏览器提供清空按钮,就清空它;不提供就原样放着。
- 把各个格子填上。连着改几次金额、利率、期限。看着结果在你眼前更新,每敲一下就更新一次。
- 确认。你打字的整个过程里,列表里不会新增任何一行。结果在变,请求列表不变。
也看一看标明每个请求方法的那一列:全部是 GET,也就是索取一个文件的那种方法。没有一个是 POST,也就是发出内容的那种:连“计算”按钮都造不出一个来,因为代码阻止了表单按常规提交,而是自己在本地完成计算。最初一次加载时看到的那几个请求并不构成矛盾:那是本站的文件下行到你的设备上以便显示,随后被留在缓存里以便无网络时使用。一份下行的副本,不是一份上行的数据。
第二个测试
输入途中打开飞行模式
这个测试直接拿掉发送任何东西的可能性,然后看计算器是否照样能用。
- 正常联网打开一个计算器。先敲一个数字,记下显示的结果。
- 断开所有连接。飞行模式,或者把无线网和移动数据一起关掉。
- 改数字。换一个金额、换一个利率、换一个期限,全程不要重新联网。
- 确认。结果立刻更新,和之前完全一样,一格网络信号都没有。
如果这个计算依赖某处的一台服务器,断网就会让它无法回应。而这里什么都不用等,因为什么都没出去:这道加法用的是你自己设备的资源,不是一台远端服务器的资源。离线能力对一整页意味着什么、在没有无线网的教室里或者打印时意味着什么,说明在离线用,也能打印:在这里,只有它对你自己的数字所证明的那一点算数。
第三个测试
读一读做计算的那段代码
前两个测试展示的是一个结果。这一个展示的是原因:本站完全静态,它的代码既没有被编译,也没有被压缩到读不懂,没有任何东西阻止你去读它。
- 打开
/assets/js/calculateurs.js。直接访问这个地址,或者通过开发者工具的源代码标签页。它就是让每个计算器跑起来的那个文件。 - 读它的文件头。它用法语明明白白地写着,它既不知道什么请求,也不知道什么存储。
- 往下看那些函数。以各个计算器命名的那些函数(预算、贷款、利息、保险、承诺)只对收到的数字做算术运算,然后把结果返回。别的什么都没有。
- 自己动手试试。在开发者工具的控制台里输入
CalculsODERSA并回车:这些函数会出现,可以直接调用。没有任何东西藏在别处。
还有第二个文件让网站的其余部分跑起来:/assets/js/socle.js。读它的时候,你会看到里面真的用到了 localStorage,也就是浏览器的存储空间。这不是矛盾,而且与其让人毫无解释地自己发现,不如在这里说明:这处存储只保存你的显示偏好(主题、文字大小、间距、对比度、链接下划线、减少动画),存在一个以本服务名称命名的键下面。任何金额、任何债务、任何收入都从不经过它:计算器就在前一个文件里,而只有它接触你的数字。
第三个文件 /sw.js 在后台工作,独立于页面,负责离线能力。它把本站的页面和文件复制一份存进浏览器的一个空间里,以便在没有网络时重新提供给你。预先缓存并从这个缓存提供内容,不是发送数据:它是相反方向的动作,一份下行到你设备上的副本,从来不是一份从设备上离开的内容。这套机制的细节在离线用,也能打印。
这三个文件都没有被任何构建步骤压缩或打乱:你读到的文件,正是你的浏览器执行的那个文件,连法语注释都在。本站既不认识账号也不认识数据库:所以每个文件只存在一个版本,对你和对任何其他读者都是同一个。
把界限说清楚
这些测试证明不了什么
- 它们展示的是在你浏览器里、在你眼前执行的代码。不多也不少:这既不是一次审计,也不是一份认证。
- 它们对技术托管什么都没说。和互联网上任何一个打开的地址一样,一台服务器可以记录一些基础信息:被请求的地址和时间。这对所有网站都成立,不是本站独有的,而这三个测试都无法从浏览器里确认或排除这一点。
- 这一点不改变已被证明的东西。填进计算器的一个金额、一笔债务、一笔收入,从来不会被放进一个请求里:所以任何地方都没有东西可记录,这里没有,别处也没有。
- 代码可能会变。本站会随时间被更正和补充。你随时可以重做这个测试:它只要三分钟,而且对所有人都是同一套。
谁都可以写下“没有任何数据离开你的设备”。这一页给你三分钟,让你不必相信我们,自己去核验。
如果某个测试的过程和这里描述的不一样,或者代码自这几行写下以来变了,请报告给我们:这是可以改的。
内容更新至 。
想再往前一步:离线与打印的细节在离线用,也能打印;本站能用数字证明什么在/data/impact.json;这门课本身怎么写、怎么核实在方法。