繁体   English   中英

使用 ftp_connect function 的 AUTH TLS/SSL

[英]AUTH TLS/SSL with ftp_connect function

根据RFC 2228AUTH是一个 FTP 命令,可以与一种身份验证机制( TLSSSL )一起使用,以保护数据通道和控制通道。

我想知道我是否可以将此命令与ftp_connect function 的非安全连接(常规 FTP)一起使用,如下所示:

$conn = ftp_connect('hostname');

if (is_ressoure($conn)) {
    $command = ftp_raw($conn, 'AUTH TLS');
    $responseCode = (int) substr($command[0], 0, 3);

    if ($responseCode === 234) {
        // AUTH TLS success
        login(); // secured

    } else { // if TLS rejected try SSL

        $command = ftp_raw($conn, 'AUTH SSL');
        $responseCode = (int) substr($command[0], 0, 3);

        if ($responseCode === 234) {
            // SSL authentication success
            login(); // secured

        } else {
            // Cannot secure the data channel and command channel
            die();
        }
    }
}

我知道AUTH命令与ftp_ssl_connect的显式 FTP/SSL 连接一起使用,我很困惑,我想知道这个命令对于常规的 FTP 连接是否无用?

提前致谢!

AUTH TLS / SSL将连接变为加密。 如果将它与普通的ftp_connect连接一起使用,连接将停止工作。 服务器将期望加密命令(并将发送加密响应),客户端(PHP FTP 模块)将继续发送未加密命令(并将期望未加密响应)。 他们不会互相理解。 实际上,它甚至永远都不会到达,因为在响应AUTH之后,服务器将启动 TLS 握手,并且会立即失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM