【问题标题】:Accessing secure information from Google Colaboratory从 Google Colaboratory 访问安全信息
【发布时间】:2019-09-07 03:38:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: api security authentication google-colaboratory


    【解决方案1】:

    写出问题帮助我解决了问题。我的学生已经了解了 JSON 的外观,以及如何使用嵌套字典。他们已经使用我的 sn-ps 调用 colab 代码将文件直接上传到笔记本的操作系统(无需通过 Drive):

    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 存储库;这些学生很快就会被搞砸),并且它利用了已经教过或容易教的技能。

    【讨论】:

    • 让学生使用input() 作为他们的密钥和密码也是一种选择。很简单。虽然很乏味。
    猜你喜欢
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    相关资源
    最近更新 更多