PyScript,让你在浏览器运行python程序

admin 2022年5月20日03:00:07安全开发评论49 views1959字阅读6分31秒阅读模式

在PyCon US 2022上,Python开发商Anaconda发布了PyScript,该框架可以在浏览器中运行Python应用。它允许开发者在HTML中创建丰富的Python应用程序,Python代码可与JavaScript实现双向通信。

PyScript,让你在浏览器运行python程序


什么是PyScript


PyScript 是一个框架,它允许用户通过简单地使用框架本身提供的特殊 HTML 标签在浏览器中运行 Python 并创建丰富的应用程序。核心功能包括:

  • 浏览器中的 Python:启用插入式内容、外部文件托管(由 Pyodide 项目实现,谢谢!)和应用程序托管,而不依赖于服务器端配置

  • Python 生态系统:运行许多流行的 Python 包和科学堆栈(例如 numpy、pandas、scikit-learn 等)

  • Python with JavaScript : Python 和 Javascript 对象和命名空间之间的双向通信

  • 环境管理:允许用户定义要包含哪些包和文件以运行页面代码

  • 可视化应用程序开发:使用现成的精选 UI 组件,例如按钮、容器、文本框等

  • 灵活的框架:一个灵活的框架,可用于直接在 Python 中创建和共享新的可插拔和可扩展组件

说了这么多……PyScript 只是 HTML,只是功能更强大一点(好吧,也许很多),这要归功于 Python 库的丰富且可访问的生态系统。


PyScript使用


要尝试 PyScript,请将适当的 pyscript 文件导入您的 html 页面:

<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" /><script defer src="https://pyscript.net/alpha/pyscript.js"></script>

然后,您可以在 html 页面中使用 PyScript 组件。PyScript 当前实现了以下元素:

  • <py-script>: 可用于定义可在网页中执行的 python 代码。元素本身不渲染到页面,仅用于添加逻辑

  • <py-repl>:创建一个 REPL 组件,该组件作为代码编辑器呈现到页面并允许用户编写可执行代码

查看pyscriptjs/examples文件夹以获取有关如何使用它的更多示例,您需要做的就是在 Chrome 中打开它们。

除了在<py-script>中写python源代码以外,也可以通过直接传递源文件引入python脚本。

<py-script src="/my_own_file.py"></py-script>

PyScript 将读取该代码,在 python 解释器上运行它并相应地处理输出。

如果我需要加载(安装)我的应用程序所需的其他模块和包,可以使用<py-env>标签来指定环境要求

 <py-env>- bokeh- numpy- paths:  - /utils.py  </py-env>

要添加类似 REPL 的组件来创建交互式体验,只需使用<py-repl>标签

<py-repl id="my-repl"  auto-generate="true"> </py-repl>



PyScript示例


<!DOCTYPE html><html lang="en">  <head>    <meta charset="utf-8" />    <meta name="viewport" content="width=device-width,initial-scale=1" />
<title>PyScript Hello World</title>
<link rel="icon" type="image/png" href="favicon.png" /> <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script> </head>
<body> Hello world! <br> This is the current date and time, as computed by Python: <py-script>from datetime import datetimenow = datetime.now()now.strftime("%m/%d/%Y, %H:%M:%S") </py-script> </body></html>

运行结果:

PyScript,让你在浏览器运行python程序


TIPS


作为搞安全的大兄弟们,此时会不会想到,这种方式岂不是可以浏览器端RCE。放心!经过测试,当调用敏感的操作,例如:OS.system('whoami')时,浏览器返回-1错误,是没有权限执行的。


https://pyscript.net/

原文始发于微信公众号(锋刃科技):PyScript,让你在浏览器运行python程序

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月20日03:00:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  PyScript,让你在浏览器运行python程序 http://cn-sec.com/archives/1024961.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: