python - 本地运行的 python dash 应用程序对敏感数据是否安全?

标签 python plotly dashboard plotly-dash

我创建了一个 Python Dash Dashboard 来交互式地显示敏感的客户数据。我正在通过笔记本电脑上的本地主机使用仪表板。
我正在初始化并运行该应用程序:

app = dash.Dash(__name__)

if __name__ == "__main__":
    app.run_server(debug = True)
仪表板的数据能否以某种方式被其他人访问,还是只能从我的机器访问?

最佳答案

Dash 是一个构建在 Flask、Plotly.js、React 和 React Js 之上的 Python 框架。
根据 official Flask documentation localhost 上的开发服务器除非明确配置为这样做,否则无法从主机外部访问。
最简单的 Dash 应用程序通常由一个 Python 文件组成,并在末尾包含以下样板代码:

if __name__ == '__main__':
    app.run_server(debug=True)
可以修改此样板以允许网络上的其他设备通过添加以下主机参数来访问本地托管的开发服务器:
if __name__ == '__main__':
    app.run_server(debug=True, host='0.0.0.0')
我在我的机器上创建了一个演示 Dash Dashboard 来测试这个。
起初,我没有对我的 PC 的防火墙配置进行任何更改,并且无法从另一台计算机访问该网页。
通常,当新应用程序尝试在 Windows 上公开端口时,您会收到安全警报(假设您使用的是标准防火墙,但其他防火墙的行为方式大致相同):
Windows Security Alert
假设您尚未配置防火墙,并且您正在使用 Flask 开发服务器而不是生产服务器运行应用程序 WSGI server ,而且你还没有接触过 Flask 开发服务器的配置,你会没事的。
一旦我对主机参数进行了更改,我就只能使用开发服务器访问该应用程序。否则将无法访问破折号网页。
编辑:
按照马特在他的回答中所说的——
问题的提问者正在使用 dash在 session 上展示结果。
假设您只是在 session 期间运行仪表板,并且您的设备没有受到主动攻击,并且您始终控制着设备,那么通常应该没问题。如果您担心受到来自本地网络的攻击,请不要连接到任何网络。
如果您正在处理的数据非常敏感,那么在可能的情况下,只携带运行仪表板所需的汇总数据是明智之举。

关于python - 本地运行的 python dash 应用程序对敏感数据是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67126993/

相关文章:

python - 如何使用plotly绘制标准密度曲线?

r - ggplot 到 ggplotly 不适用于自定义的 geom_boxplot 宽度

parameters - 使用 html 或 javascript 在 CDE 仪表板中打印变量

jquery - 寻求框架来实现仪表板

python - ZMQ 对(用于信令)由于连接不良而阻塞

python - 如何使用顺序颜色图绘制 pandas 条形图?

python - 将参数传递给 wsadmin 中的 jython 脚本

python - 如何更改 Dash (Plotly) 中的语言/区域设置或 Plotly 工具栏的标签?

python - 使用 Dash 和 Plotly 实时更新表值

dashboard - 达世币未成功导入。确保当前目录中没有名为 'dash.py' 的文件