【问题标题】:How to check if FTP server offers TLS support in python?如何检查 FTP 服务器是否在 python 中提供 TLS 支持?
【发布时间】:2016-05-16 14:53:25
【问题描述】:

当我使用 ftplib 连接时,如何检查 FTP 服务器是否允许 TLS?我找到了关于如何使用 TLS 的简单文档,但没有关于如何检查它的解决方案。我的脚本应该以任何一种方式连接,但如果可能,请使用 TLS。

那么我是否只使用 TLS 进行连接,如果它失败了,我就不用了吗?我相信一定有更好的方法。

感谢您的帮助。

【问题讨论】:

    标签: python ftp ftplib


    【解决方案1】:

    请注意,仅尝试加密与根本不使用任何加密一样糟糕。甚至可能更糟,因为它给人一种安全的印象,而实际上并没有。

    当您受到 MITM 攻击时,攻击者会将 TCP 流量转移给他/她并模拟加密拒绝,从而使您将凭据纯文本直接发送给攻击者。


    无论如何:

    如果服务器支持 TLS,FTP_TLS.auth 将启用加密,FTP_TLS.login(即使使用secure=False)将继续使用它。如果服务器不支持加密,FTP_TLS.login(带有secure=False)继续不加密。

    注意FTP_TLS.login(带有它的secure 参数)是一个未记录的方法——如果你不想使用它,你可以回退到创建一个普通的FTP,当FTP_TLS.auth 抛出时。


    要明确检查,您还可以使用FTP.voidcmd('FEAT') 并在响应中查找AUTH TLS(或AUTH SSL)。

    但是直接尝试AUTH TLS/AUTH SSL(FTP_TLS.auth 的作用)并没有错。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多