J'essaie actuellement d'utiliser PHP pour transférer de petits fichiers entre notre serveur et un serveur distant FTPS (FTP sur SSL). Je suis la juste standard pour réaliser ce but, à savoir, file_put_contents, file_get_contents, etc ... avec le contexte de flux suivant:PHP essayant le transfert FTPS crée des fichiers vides
stream_context_create(array('ftp' => array('overwrite' => true), 'ssl' => array('allow_self_signed' => true)))
Je passe ce flux de contexte en utilisant le code suivant. Il peut très bien se connecter au serveur FTPS, mais quand il s'agit de créer le fichier distant, le fichier lui-même est complètement vide. Vide comme en 0 pour la taille du fichier.
if(false === file_exists($localFile))
{
throw new Exception("Local file, {$localFile}, does not exist.");
}
if(false === $localFileContents = file_get_contents($localFile))
{
throw new Exception("Could not open Local file, {$localFile}.");
}
if(false === file_put_contents("{$this->url}{$remoteFile}", $localFileContents, FILE_APPEND, $this->context))
{
throw new Exception("Could not write to remote file, {$remoteFile}.");
}
L'emplacement de fichier distant, soit $ this-> url, est dans le format suivant: "FTPS: // {user}: {} @ {passer hôte}: {port}"
Nous utilisons actuellement l'installation de Windows/Apache, donc je ne peux pas utiliser ftp_ssl_connect() sans compiler nos propres binaires PHP. Nous ne pouvions pas suivre cette voie, car c'est un changement majeur dans notre environnement.
Jamais, jamais faire cela. En désactivant la vérification des homologues et des hôtes, vous invalidez complètement le cryptage, car toute personne intéressée peut utiliser une attaque MitM pour lire votre transfert. Si vous souhaitez désactiver la vérification de cette manière, n'utilisez pas SSL/TLS. – rdlowrey
D'accord. Cela invaliderait le point de SSL si vous ne pouvez pas dire que votre trafic n'est pas intercepté. Savez-vous comment vous pouvez surmonter le problème OP si vous n'avez pas de contrôle sur le serveur distant? Je serais super désireux de savoir. – Drew
Il est impossible de savoir sans voir le code réel de l'OP. L'extrait publié est incomplet. Il échoue également à vérifier l'homologue dans son contexte de flux, il n'est donc pas plus sûr que de désactiver la vérification en utilisant curl. – rdlowrey