连接远程服务器时MySQLdb的安全性?

5 投票
3 回答
2742 浏览
提问于 2025-04-17 16:13
    db = MySQLdb.connect(host ="host",
        user="user",
        passwd="pass",
        db="dbname")
    q = db.cursor()

这是我的代码块,我想知道,反向工程这个代码有多简单?还有,mysqldb发送认证信息的时候是明文传输吗?

我正在创建一个程序,通过互联网连接到一个mySQL服务器,有人能获取到我的登录信息吗?

有人能拿到我的服务器登录详情吗?

3 个回答

0

密码不应该直接写在代码里。Python有一个约定,就是使用一个叫config.py的模块,你可以把这些值单独放在这里,不和其他代码混在一起。

可以看看这里:

http://dev.mysql.com/doc/refman/5.5/en/connector-python-coding.html

关于SSL防止信息泄露的问题,上面已经回答过了。

Fabio
@fcerullo

1

MySQL服务器可以设置为使用SSL来保护连接的安全。你可以在这里找到一个关于如何用SSL连接MySQLdb的例子,另外在这里可以找到一些关于如何配置服务器的信息。

1

在你上面的例子中,用户名、密码和其他所有数据都是以明文形式发送的。

这里有两个相关的问题:Python MySQLDB SSL 连接Python MySQLdb 的 CA SSL 参数不工作,但密钥可以?

如果你有权限更改 MySQL 服务器的配置,我们可以帮助你设置 SSL。

MySQL 支持加密连接。你连接的 MySQL 服务器必须配置为使用 SSL,而客户端在连接时也必须添加一个 SSL 参数。

使用 SSL 连接

shell> mysql --ssl-ca=ca-cert.pem ...

你可以通过添加 --ssl-ca=ca-cert.pem 来测试你连接的服务器是否支持 SSL。ca-cert.pem:在服务器和客户端上使用这个作为 --ssl-ca 的参数。(如果使用 CA 证书,两个端都必须是相同的。)

MySQL SSL 示例 描述了设置 MySQL 和使用 SSL 连接的过程。

撰写回答