Назад | Перейти на главную страницу

Скрыть php-скрипт от внешних запросов

(первый вопрос по обмену стеками, не стесняйтесь комментировать / критиковать)

Контекст

У меня есть сервер Debian с

К вашему сведению, цель FMS - это, помимо прочего, потоковое видео. Он использует протокол RTMP.

Насколько я понимаю:

Когда запросы FMS блокируются в 1935 году, происходит откат на 80. Протокол изменяется и становится HDS, который является RTMP поверх HTTP (медленнее, но работает).

FMS требуется 80 портов, чтобы сделать это резервное копирование.

Apache, наоборот, доставляет файлы html, css, ... и swf, которые представляют собой флэш-файлы, используемые на клиенте для подключения к серверу.

Со стороны клиента вы получаете доступ к этим файлам через порт 80. Затем FMS передает Apache HTTP-запросы, которые он не может обработать.

Таким образом, Apache не нужно настраивать на порт 80, что позволяет избежать конфликта портов на 80.

Пока все работает отлично.

Но недавно мне пришлось добавить в FMS функциональность SQL. И FMS не имеет встроенного SQL-соединения. Он едва может выполнять HTTP-запросы. Таким образом, вам придется обрабатывать SQL на другой серверной технологии. Поскольку Apache уже есть дома, на ум приходит PHP / MySQL.

Итак, я установил PHP и MySQL и создал сценарий шлюза .php, который действует как очень простой уровень доступа к данным.

Это работает, FMS может запрашивать данные JSON, сделанные из PHP / MySQL с помощью json_encode, и, поскольку язык FMS - это ActionScript, я прочитал Javascript, я сделал (new Function ("return" + src)) () и вуаля, у меня был объект js прямо из базы данных.

Очень просто и позволяет избежать создания сервера J2EE или возврата Zend Framework для работы с AMF.

Теперь возникает моя проблема с безопасностью:

шлюз .php доступен для всех, а это значит, что любой может придумать URL-адрес .php с правильными аргументами GET и читать из базы данных или связываться с ним.

Я хочу, чтобы со шлюзом могла разговаривать только ФМС. Но мне нужно, чтобы клиенты по-прежнему могли запрашивать любой другой файл (html, css, swf ...).

Используйте правило .htaccess, вроде этого:

<Files ~ "\yourscript.php$">
    Order allow,deny
    Allow from your.fms.ip.address
    Deny from all
</Files>

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

Я закончил добавлять какие-то базовые аутентификация для скрипта шлюза.

Я решил назвать сценарий с

http://localhost/script.php?login=user&password=xyz&action=todo&param=something&...

Каждый может получить доступ к этому сценарию, если он знает учетные данные, но теперь пароль установлен, и вы должны его знать. Таким образом, поиск этого URL немного усложняется. Поскольку этот запрос выполняется с локального хоста на локальный хост на сервере, я думаю, что теперь безопасность в хорошем состоянии, и никто не может «прослушивать пакеты», чтобы найти его. Может, это не идеально. Комментарии приветствуются.