从 Google Colaboratory 访问安全信息

Accessing secure information from Google Colaboratory

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

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

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

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

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,它教会了他们一些安全意识,即使他们不这样做也能保证他们的安全关心安全意识(我有学生 post 所有课程都到 public git 回购;这些学生很快就会被搞砸),它利用已经教授或容易的技能教.