安全与脚本

Security & Pyscript

我正在编写一个 Python 编辑器,它可以执行 python 代码和 return 输出。我最初的想法是为它编写一个后端服务,它将 运行 Python 脚本和 return 输出。但是随着 Pyscript 的发布,我想知道我是否可以在前端完成它。

我最大的担忧之一是安全性,因为 Python 编辑器可能需要连接 AWS 资源(例如数据库、Dynamodb、RDS...)。使用凭据连接 AWS 资源是否会成为安全问题?如我所见,Pyscript 也在混淆 Python 代码,因此我有点困惑。

感谢您的回复

However with the release of Pyscript, I am wondering if I can do it in the frontend.

是的。网上有例子。该存储库在浏览器中有一个 repl 示例:

https://github.com/pyscript/pyscript/tree/main/pyscriptjs/examples

One of my biggest concerns is the security, since the Python editor may need to connect AWS resources (such as Databases, Dynamodb, RDS...). Will using credentials to connect AWS resources be a security concern?

这是一个非常大的问题。 Pyscript 将在 Python 代码中公开您的凭据,该代码可从浏览器调试 window 轻松读取,或者只需使用 curlwget 等 CLI 即可下载您的 HTML.

As I see, Pyscript is also obfuscating the Python code, thus I am a bit confused.

我不确定您看到了什么混淆,但您无法从可以下载您的 HTML 和 Python 文件的浏览器或工具中隐藏任何内容。这不会提高您的安全性,因为您使用 Pyscript 的源代码安全性为零。

编辑:请参阅下面 John Hanley 的评论,解释为什么我的想法行不通。


您不能将凭据放在服务器上 public 无法访问的文件夹中的文本文件中吗?然后在 <py-script> 标签内,运行:

with open("../../secure_directory/my_secrets.txt") as f:
    my_secrets = f.read()

这会略微提高安全级别吗?