运行 带有数据库连接字符串的本地 python 文件中是否存在任何安全漏洞?

Is there any security vulnerabilities in running a local python file with a connection string to a database?

所以我一直在网上搜索答案,但没有找到一个完全满足我 curiosity/anxiety 的答案。我是 运行 一个 python 脚本,用于将 XL 文件集合中的数据插入数据库。在本地 运行 脚本时是否存在安全漏洞的可能性?我认为我的犹豫源于必须将密码硬编码到连接字符串中。任何见解将不胜感激!

有关额外信息,我在 Python 中使用 mysql.connector 包,并连接到 MySQL 数据库。

我建议将用户名和密码与您的 Python 代码分开。您可以将这些选项存储在 MySQL 选项文件中,就像其他 MySQL 客户端一样。参见 https://dev.mysql.com/doc/connector-python/en/connector-python-option-files.html

cnx = mysql.connector.connect(option_files='/etc/mysql/connectors.cnf')

理想情况下,您不仅会使用密码,还会使用 SSL 选项,以便对 MySQL 实例的流量进行加密。这将防止窃听者读取您的数据包。查看连接选项中的ssl_*选项:https://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html

如果 Python 脚本与 MySQL 服务器位于同一主机上并且脚本使用 UNIX 套接字而非 TCP 连接到“localhost”,则 SSL 不适用。攻击者无法窃听该流量。

您需要注意 .cnf 文件的文件权限,以免该主机上的未授权用户无法读取它。

如果您存在未经授权的用户可能会侵入您主机上的超级用户帐户的风险,那么您将无能为力。