2009-06-21 2 views
0

Мне нужно перенести данные с PHP-скрипта на моем локальном сервере на удаленный API (также написанный на PHP) на моем сервере хостинга. Это в основном примитивная система управления версиями, и я использую HTTP GET и HTTP POST для передачи файлов и строк.Передача зашифрованного сервера данных на сервер, между 2 скриптами PHP

Я хотел бы, чтобы соединение зашифровано, но мой (общий) веб-хост говорит мне, что я не могу использовать SSL, потому что я не могу получить выделенный IP-адрес - и даже если бы мог, я не хочу тратьте на него больше денег.

Мой вопрос: есть ли лучший способ сделать это?

Некоторые возможности, которые я рассмотрел, используют расширение mcrypt в PHP для шифрования данных на одном конце и дешифрования на другом.

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

EDIT: см. this question в качестве продолжения относительно OpenPGP, GnuPG и передачи с использованием MIME.

ответ

2

В чем проблема с использованием простого симметричного шифрования (например, с помощью mcrypt) или что-то с открытым/закрытым ключом, если вам действительно нужно подписание и все? Другим возможным решением может быть использование установленных системных инструментов и размещение всех ваших файлов в защищенном паролем zip-файле. (php function call "system()")

+0

симметричное шифрование будет прямым решением.Но это вопрос безопасности, поскольку он должен где-то сохранять ключ дешифрования на сервере. для системы с открытым/закрытым ключом я бы выбрал pgp, но я сомневаюсь, что его хостер установил его или позволяет ему это не так. – jitter

+0

@jitter Я не вижу компромата в качестве проблемы с шифрованием, потому что если один сервер будет взломан, вы обречены в любом случае. Для части pgp: существует несколько бесплатных библиотек, полностью написанных на php (например, TinyPGP http://www.codeproject.com/KB/HTML/Tiny_PGP.aspx). – merkuro

+0

Еще одна вещь: вы можете ограничить доступ к определенным областям на принимающей стороне точно одному IP-адресу. – merkuro

1

Вы можете создать самоподписанный сертификат для использования в SSL. У вас нет причин платить кому-то вроде verisign для сертификата, если вы единственный, кто должен доверять сертификату.

Вы также можете рассмотреть следующее. Служба хостинга, такая как Dreamhost (это то, что я использую), будет стоить вам 10 долларов в месяц за хостинг, 4 доллара в месяц для статического IP и 15 долларов США в год (1,25 в месяц) за настоящий сертификат SSL. Так что это всего лишь $ 15 в месяц для учетной записи с общим хостингом с реальным сертификатом, подписанным реальным ЦС. Я не знаю, с кем вы в настоящее время работаете, или за то, что они взимают с вас, но если вы вообще серьезно относитесь к этому проекту, то 15 долларов в месяц не так уж много денег, чтобы положить на него.

+0

uhm .. его хост говорит, что он не может получить выделенный ip. так что самоподписанный сертификат ничего не сделает, поскольку он, вероятно, находится на виртуальном хосте, основанном на имени. – jitter

+0

Я не считаю, что самоподписанный сертификат должен использовать какой-либо конкретный IP-адрес. Я думаю, что это требуется только в том случае, если вы хотите, чтобы ваш сертификат подписывался центром сертификации. – Kibbee

+0

Это не проблема. Он находится на общем хостинге, поэтому есть несколько сайтов под одним IP. Согласование SSL/TSL происходит до того, как имя хоста будет отправлено на сервер. Таким образом, сервер не может знать, для какого домена он должен сервер сертификата. Поэтому он не может этого сделать. – jitter

1

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

Возможно, вы захотите ознакомиться с веб-сервисами Amazon. Я не знаю, сколько вы платите за хостинг, но у них есть виртуальные серверы за 10 центов в час (72 доллара в месяц примерно). Тогда вы будете свободны делать все, что захотите.