【发布时间】:2023-04-30 15:11:01
【问题描述】:
我有一个关于 Python 和 MySQL 的问题。我来自 PHP 背景,我想知道 Python 中的工作流程将如何。我在网上找不到任何好的答案,希望有人能帮助我理解这件事。所以让我快速解释一下我的困惑:
在 PHP 中,我结合 MySQL 做了很多小事,这意味着从数据库加载数据并写入数据。只要正确设置了存储 php 文件的服务器,就可以保存它。与数据库的连接,包括用户名、服务器名、密码和数据库名,保存在 php 文件中。由于 php 文件存储在服务器上并且源代码不会显示给用户本身,因此用户无法看到身份验证数据以连接到数据库。
现在,我想知道如何以安全的方式将整个概念转移到 Python 中,这样用户就无法在源文本中看到身份验证数据。 我计划编写一个 Python 程序,用户必须在其中进行身份验证。假设我在网络服务器上创建了一个 MySQL 数据库,并且在 Python 程序中用户可以登录。一旦用户单击登录按钮,就完成了与 Web 数据库的连接。这意味着在我的源代码中,我需要记下该特定数据库的用户名、密码、数据库名称和服务器名称等必要数据。这是我的问题:这意味着每个人都可以看到非常不安全的身份验证数据,不是吗?即使用户只有一个 .pyc 文件,他也可以重新编译它并查看标准 .py 文件,在该文件中他可以看到所有非常敏感的数据。
所以我想知道如何安全地向稍后将使用我的 Python 程序的用户隐藏该身份验证数据。
-
我不认为我说对了,但是 PHP 和 Python 处理数据库的方式没有区别。两者都是解释性语言,代码存储在简单的文本文件中,任何有权访问它们的人都可以查看。显然,您不应该在其中硬编码密码或用户名之类的东西。
-
您需要实现服务器/客户端通信。在您已经编写过的 PHP 中,您有一个特殊情况,客户端可以同时是服务器。在几乎所有其他情况下,您实现了一个隐藏数据库连接并处理用户交互的服务器。
-
感谢您的快速回答。也许我理解错了,但在 Python 文件中,我需要连接到 mysql 数据库才能从中获取一些数据。在 php 中一切都很好,因为用户永远看不到实际的 php 文件本身,他只看到由 php 文件形成的 html 文件。所以用户永远看不到敏感的身份验证数据。在 Python 中他可以,因为它在 Python 源代码中。还是python源代码需要将用户名和密码发送到网络服务器,其他一些php文件会检查输入的值?
-
这对于python来说也是一样的,只要我们谈论的是web应用程序。 HTML 将形成并包含您将放在那里的内容。用户只能看到前端(html 页面),而不是 python 代码,它将处理来自用户/连接数据库等的请求
-
明白。但我试图管理一些不同的东西。实用地说:我为合成软件nuke开发了一些python脚本。用户下载脚本并安装它。在 nuke 中,他可以运行脚本。例如,我单击一个按钮,将弹出一个窗口,其中显示来自我服务器上的 mysql 数据库的数据。总而言之:python脚本在艺术家的电脑上;在该 python 脚本中,完成了与 web 服务器上的 mysql 数据库的连接; + 出于安全原因,用户可能看不到身份验证数据以自己访问网络数据库。