从谷歌实验室访问安全信息



我正在使用Google Colaboratory作为平台,向非常初级的程序员教授Python中的Web科学(API,抓取等)。 我将公开和广泛地发布由此产生的笔记本,供其他教师使用。Colab 已被证明是使用开放 API 的绝佳平台,但最流行的 API 是封闭的,这带来了困难。

我希望我的学生在Twitter上启动并运行,尽量减少摩擦。 他们可以很容易地获得个人密钥(我引导他们完成它)。 困难的部分是,我不希望他们提交给我的解决方案(完整的.ipynb文件)包含他们粘贴到代码中的私钥。 我也不想提供课程级别的密钥,因为这有其自身的风险(我知道我以前滥用过教师提供的密钥)。

我正在努力寻找一种模型来帮助业余爱好者通过 Colab 安全地访问封闭的 API。我的故事是教学性的,但这个问题与任何使用 Colab 访问封闭 API 的人、可能共享代码以及不想将私钥放在云端硬盘上的任何人都有关。

把问题写出来帮我解决了。 我的学生已经了解了JSON的样子,以及如何使用嵌套词典。 他们已经使用我的代码片段调用colab代码将文件直接上传到笔记本的操作系统(无需通过云端硬盘):

import json
from google.colab import files
uploaded = files.upload()
data = json.loads( list( uploaded.values() ).pop().decode('utf-8') )

如果我给他们按照以下行手动创作.json文件的说明:

{
'twitter' : { ... },
'spotify' : { ... },
'yelp'    : { ... }
}

我告诉他们要保证它的安全并随身携带,然后我可以让他们养成在他们运行必须进行身份验证的笔记本时上传该文件的习惯。我可以为他们编写其他代码来解析文件并将正确的密钥发送到写入平台。

这使我看不到他们的数据,它不会太笨拙或复杂,它给了他们更直接的 JSON 体验,它教会了他们一些安全意识,即使他们不关心安全意识也能保证他们的安全(我有学生将所有课程作业发布到公共 git 存储库;这些学生很快就会被搞砸), 它利用已经教授或易于教授的技能。

最新更新