AUTH TLS / SSL с функцией ftp_connect - PullRequest
1 голос
/ 06 мая 2020

Согласно RF C 2228 AUTH - это команда FTP, которая может использоваться с одним из механизмов аутентификации (TLS или SSL) для защиты обоих данных. канал и канал управления.

Мне интересно, могу ли я использовать эту команду с незащищенным соединением (обычный FTP) с функцией ftp_connect, например:

$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-соединением с ftp_ssl_connect, я запуталась и хочу знать, бесполезна ли эта команда с обычным FTP подключение?

Заранее спасибо!

1 Ответ

1 голос
/ 06 мая 2020

AUTH TLS / SSL превращает соединение в зашифрованное. Если вы используете его с обычным соединением ftp_connect, соединение перестанет работать. Сервер будет ожидать зашифрованные команды (и будет отправлять зашифрованные ответы), а клиент (PHP FTP-модуль) будет продолжать посылать незашифрованные команды (и будет ожидать незашифрованных ответов). Они не поймут друг друга. На самом деле до этого никогда не дойдет, так как после ответа на AUTH сервер инициирует рукопожатие TLS, и это сразу же не удастся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...