인터넷 시대에는 파일 전송 수요가 증가하고 있으며 FTP (파일 전송 프로토콜)가 여전히 널리 사용됩니다. 그러나 기존의 FTP 프로토콜에는 일반 텍스트 전송 및 약한 신원 인증과 같은 보안 위험이 있습니다. 이 기사는 PHP를 사용하여 FTP 및 SFTP 프로토콜을 결합하여 파일 전송의 보안을 개선하는 방법을 소개합니다.
FTP (FTP Over SSL/TLS)는 FTP와 SSL/TLS 암호화 프로토콜을 결합하여 파일 전송의 보안을 효과적으로 보호합니다. FTPS 연결은 PHP에서 FTP_SSL_CONNECT () 함수를 통해 쉽게 구현할 수 있습니다.
$ ftp_server = 'ftp.example.com'; $ ftp_username = 'username'; $ ftp_password = '비밀번호'; // ftps 서버에 연결 $ conn_id = ftp_ssl_connect ($ ftp_server); // ftps 서버에 로그인 $ login_result = ftp_login ($ conn_id, $ ftp_username, $ ftp_password); if ($ conn_id && $ login_result) { // ftp 작동 // ... } 또 다른 { Echo 'FTPS 서버에 연결하지 못했습니다'; } // ftp 연결을 닫습니다. ftp_close ($ conn_id);
SSTP (SSH 파일 전송 프로토콜)는 SSH 암호화 된 통신 프로토콜을 기반으로하여 더 강력한 보안을 제공합니다. PHP에서는 ssh2_connect () 함수를 사용하여 sftp 서버에 연결하고 ssh2_auth_password ()를 통해 인증 할 수 있습니다.
$ sftp_server = 'sftp.example.com'; $ sftp_username = 'username'; $ sftp_password = '비밀번호'; // sftp 서버에 연결 $ conn_id = ssh2_connect ($ sftp_server); // authentication $ auth_result = ssh2_auth_password ($ conn_id, $ sftp_username, $ sftp_password); if ($ conn_id && $ auth_result) { // sftp 작동 // ... } 또 다른 { Echo 'SFTP 서버에 연결하지 못했습니다'; } // sftp 연결을 닫습니다 ssh2_disconnect ($ conn_id);
보안이 향상되면 SSH 키 쌍을 사용하여 기존 사용자 이름 및 비밀번호 인증 대신 인증 할 수 있습니다. SFTP 프로토콜을 사용하는 경우 공개 및 개인 키 파일은 인증을 위해 ssh2_auth_pubkey_file () 함수를 통해 지정됩니다.
$ sftp_server = 'sftp.example.com'; $ sftp_username = 'username'; $ public_key_file = '/path/to/public_key.pub'; $ private_key_file = '/path/to/private_key'; // sftp 서버에 연결 $ conn_id = ssh2_connect ($ sftp_server); // authentication $ auth_result = ssh2_auth_pubkey_file ($ conn_id, $ sftp_username, $ public_key_file, $ private_key_file); if ($ conn_id && $ auth_result) { // sftp 작동 // ... } 또 다른 { Echo 'SFTP 서버에 연결하지 못했습니다'; } // sftp 연결을 닫습니다 ssh2_disconnect ($ conn_id);
FTP 또는 SFTP 프로토콜을 결합하고 암호 또는 SSH 키와 같은 적절한 인증 방법을 사용하여 파일 전송의 보안을 크게 향상시킬 수 있습니다. 암호화 된 전송 및 인증 조치는 전송 중 파일의 데이터 유출을 효과적으로 방지하고 중요한 파일의 보안을 보장 할 수 있습니다.