PHP-код обхода сервера для загрузки файла с другого сервера

Моя ситуация показана на рисунке ниже:

У меня есть файл X на основном сервере A, который я хочу загрузить с моего локального компьютера B, и файл X можно загрузить через HTTP. Но по какой-то причине мне не разрешено скачивать файл с основного сервера А. Однако у меня есть доступ к другому серверу C, на котором установлен PHP. Теперь я хочу загрузить файл X через сервер C, вызвав некоторый PHP-скрипт на сервере C с моего локального компьютера B< /сильный>.

Можно ли написать один PHP-скрипт для выполнения вышеуказанного?

Любая помощь в написании этого будет высоко оценена.


person Community    schedule 11.10.2015    source источник
comment
Имеет ли сервер C доступ к файлу X на сервере A?   -  person JimL    schedule 11.10.2015
comment
@JimL Да, и файл X можно загрузить через HTTP с любого компьютера, кроме B.   -  person    schedule 11.10.2015
comment
Проверяйте обновленный скрипт паролем, иначе это небезопасно.   -  person Pedro Lobito    schedule 11.10.2015


Ответы (1)


Я не совсем уверен, что вам нужно, но вы можете использовать следующий скрипт, чтобы действовать как прокси между двумя серверами.

ПОМЕСТИТЕ ЭТОТ ФАЙЛ НА СЕРВЕР C

phpProxy.php

<?php
$myPass = "Secr3t";
if( $myPass == $_GET['pass'] ){
    $remoteFile = $_GET['rf'];
    $filename = basename( $remoteFile );
    header("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename=\"$filename\"");
    echo file_get_contents( $remoteFile );
}

ИСПОЛЬЗОВАТЬ КАК:

phpProxy.php?rf=http://phs.googlecode.com/files/Download%20File%20Test.zip&pass=Secr3t

ПРИМЕЧАНИЯ:
1. Я добавил password, иначе скрипт очень небезопасен!
2. Если возможно, используйте https, чтобы избежать MITM

person Pedro Lobito    schedule 11.10.2015
comment
Вот именно! Большое спасибо. - person ; 11.10.2015