[英]AUTH TLS/SSL with ftp_connect function
根据RFC 2228 , AUTH
是一个 FTP 命令,可以与一种身份验证机制( TLS
或SSL
)一起使用,以保护数据通道和控制通道。
我想知道我是否可以将此命令与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.