Conexão/autenticação Webdav com PHP
-
13-09-2019 - |
Pergunta
Ok, então o script PHP existe no ServerA. O servidor possui o modo de segurança PHP e o webdav off. Não posso mudar nenhum desses fatores. Quero um script no ServerA para obter o login/senha do usuário para outro servidor, que chamaremos o ServerB. O Serverb possui webdav ativado.
O objetivo final é que o usuário vá para o script no ServerA, coloque suas credenciais para o Serverb e, em seguida, o script criará um arquivo iCal e o colocará no Serverb, permitindo que o usuário assine o arquivo iCal usando o Outlook/ GoogleCalendar, etc (que exige que o arquivo esteja em um servidor webdav).
Então eu tentei
fopen(servername/filename, r)
e conseguiu ler arquivos no servidor remoto. Mas quando eu tentei
fopen(servername/filename, w)
Recebo um erro que o wrapper HTTP não suporta escrever, apenas lendo.
Para encurtar a história, existe uma maneira de se conectar a este servidor e autenticar, escreva um arquivo e feche a conexão sem usar nenhuma das bibliotecas Webdav já existentes para PHP e sem ser atingido com um erro de permissões de modo seguro?
Obrigado!
Solução
O problema é que o invólucro do protocolo HTTP para PHP não é colocado. Você deve tentar escrever o seu próprio, com o FSockOpen ou, de preferência, algo como Curl.
http://ca3.php.net/manual/en/wrappers.http.php
Isso não tem nada a ver com o modo de segurança.
Outras dicas
O problema aqui é que o modo de segurança foi projetado para restringi-lo, para que você não possa executar coisas fora da sua zona "segura".
O que você poderia tentar (se puder) é modificar o safe_mode_exec_dir
Em Php.ini, você pode iniciar programas externos que podem escrever o arquivo para você (se eles residem neste diretório de modo seguro
Sobre a autenticação, não tenho certeza, talvez alguém possa responder isso com mais detalhes.