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

时间:2013-02-18 02:14:19

标签: python security mysql-python

    db = MySQLdb.connect(host ="host",
        user="user",
        passwd="pass",
        db="dbname")
    q = db.cursor()

那么,那是我的代码块,我只是想知道,这对逆向工程有多容易,mysqldb是否会通过明文发送身份验证?

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

有人能够获取我的服务器登录详细信息吗?

3 个答案:

答案 0 :(得分:1)

可以将MySQL服务器配置为使用SSL来保护连接。有关使用带有SSL连接的MySQLdb和here的示例,请参阅here以获取有关配置服务器的一些信息。

答案 1 :(得分:1)

在上面的示例中,用户名,密码和所有其他数据将以明文形式发送。

以下是两个相关问题Python MySQLDB SSL ConnectionCA SSL parameter for Python MySQLdb not working, but key does?

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

MySQL支持加密连接。您要连接的MySQL服务器必须配置为使用SSL,并且客户端必须在连接时添加SSL参数。

Using SSL connections

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

您可以测试您要连接的服务器是否支持我添加--ssl-ca=ca-cert.pem的SSL。 ca-cert.pem:在服务器端和客户端使用此参数作为--ssl-ca的参数。 (如果使用CA证书,双方的证书必须相同。)

MySQL SSL Example描述了为SSL设置和连接SSL的过程。

答案 2 :(得分:0)

密码不应该在代码中硬编码。 Python具有config.py模块的约定,您可以将这些值与其余代码分开。

请看这里:

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

上面已经回答了关于SSL防止披露的问题。

的Fabio @fcerullo