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



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

对于额外的信息,我使用mysql。Python的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服务器在同一台主机上,并且该脚本连接到"localhost"使用UNIX套接字而不是TCP。攻击者没有办法窃听这些通信。

您需要小心.cnf文件上的文件权限,因此该主机上的未经授权的用户无法读取它。

如果存在一个未经授权的用户可以闯入您主机上的超级用户帐户的风险,那么您可以做的不多,以防止这种情况。