PDA

Просмотр полной версии : Подскажите лучший способ обмена данными с сервером


billion
05.10.2011, 09:34
Посоветуйте технологию(способ, продукт) чтобы в идеале обеспечить скорость "XML", многопоточность, сжатие трафика, скрытие ПОСТ и трафика.

Есть у меня программка, написана на Flash Builder 4.5. Примерно раз в 3 секунды, в зависимости от действий пользователя происходит подкачка данных с сервера. Пример XML потоков на картинке 1. Размер загружаемых данных варьируется от 28 Байт до 100 Кбайт(в основном в нижних границах). PHP файлы выдают XML, за счёт этого высокая скорость. Проблема в следующем: необходимо спрятать ПОСТ параметры, трафик, обеспечить многопоточность, сжатие трафика и максимальную скорость.

(Пост параметры и трафик смотрю через Firebug)
Пробовал реализовывать через:

1. XML
ПОСТ видно в чистом виде. Трафик в виде XML. Скорость устраивает (см. картинку 1). Многопоточность выдерживает.

2. ZEND
ПОСТ параметры прячет. Трафик не показывает (прячет в gateway.php). НО! Скорость в 20-40 раз медленнее чем голый XML. К тому же не выдерживает многопоточность. Под словом "Многопоточность" я имею ввиду следующее: для каждого пакета данных создаю запрос через коллреспондер и сервис, запускаю и жду ответа. тут же не дожидаясь ответ генеряться ещё штук 10-20 запросов и все ждут ответов. А когда приходят ответы, начинаются затыки и ошибки. Более 3-5 потоков ZEND не выдерживает. Ещё один плюс - сжимает трафик почти в два раза.

3. AMF PHP
ПОСТ параметры не прячет и видно даже значения. Трафик не показывает (прячет в gateway.php). Cкорость в 10-15 раз медленнее XML. Многопоточность выдерживает. Трафик на 30% меньше чем у XML за счёт передачи объекта, а не XML.

Посоветуйте технологию(способ, продукт) чтобы в идеале обеспечить скорость "XML", многопоточность, сжатие трафика, скрытие ПОСТ и трафика.

Забыл написать. Для XML схема такая: БД MySQL->PHP->XML->Flash Builder

Inet_PC
05.10.2011, 11:34
JSON + GZIP, не?

billion
05.10.2011, 12:16
Не пробовал. Мои требования будут выполняться в этом случае? Можно примерчик?

Aquahawk
05.10.2011, 12:27
скрытие ПОСТ это как. Всё что вы передаёте на сервер можно посмотреть. Шифровать параметры ваша задача. А если нет в фаербаге, то это не значит что эти данные передаются святым божественным каналом напрямую от флешки минуя сетевой контроллер. Всё что передаётся и принимается клиент может отследить. Сокетные соединения не будет видно в фаербаге.

billion
05.10.2011, 12:34
Тогда подскажите как спрятать ПОСТ и шифровать данные для связки MySQL->PHP->XML->Flash Builder и обратно?

BuKT
05.10.2011, 12:56
var myAge:Number = 23; //Ключ
var someTextToEncode:String = 'Sometext, or xml, or anything else'; //Текст для шифрования
var arr:Array = new Array();
var l:Number = someTextToEncode.length;
var encodedText:String = '';
for (var i:Number = 0; i< l; i++){
encodedText += String.fromCharCode(someTextToEncode.charCodeAt(i) + myAge); //Шифруем методом сдвига позиции кода символа. Просто и со вкусом. 90% "хакеров" на этом этапе уже отсеятся.
}
post(encodedText); //Метод, посылающий шифрованные данные на сервер

carrotoff
05.10.2011, 13:16
Тогда подскажите как спрятать ПОСТ и шифровать данные для связки MySQL->PHP->XML->Flash Builder и обратно?

Пост не спрятать никак! Любой сниффер (http://ru.wikipedia.org/wiki/%D0%A1%D0%BD%D0%B8%D1%84%D1%84%D0%B5%D1%80) покажет все ваши параметры.

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

billion
05.10.2011, 14:19
BuKT

а как на стороне сервера в ПХП обратно расшифровать?
а так же зашифровать данные из MySQL и отправить флэшу чтоб он тоже мог дешифровать?

flax4Noob
05.10.2011, 15:04
любая флешка потрошится, и из нее вытаскивается все ваше шифрование. оО Если вам необходима безопасность - пользуйтесь безопасным соединением/каналом, ВПН, внутрення сеть. Это задаче не флеша.

BuKT
06.10.2011, 07:56
а как на стороне сервера в ПХП обратно расшифровать?
а так же зашифровать данные из MySQL и отправить флэшу чтоб он тоже мог дешифровать?
Зная ключ - провести обратную операцию с декрементацией кода символа.

billion
06.10.2011, 09:26
Зная ключ - провести обратную операцию с декрементацией кода символа.

ага. уже разобрался.

Так всё таки, други! Про декомпиляторы и обфускаторы я знаю.... вопрос в другом! Цель - защитить потоки от ламеров и средних пользователей. Уж не знаю чем хакеры пользуются, но на данном этапе мне надо обеспечить среднюю защиту.

Вопрос про ПОСТ снимается. нашёл другой способ его прятать.

У меня такое ощущение что я занимаюсь изобретением велосипеда. Наверняка есть какой то инструмент, который может обеспечить мои требования. Про это я и спрашиваю вас. Слышал про Flash Media Server, SmartFox, XMLsockets, WebSockets... что это за звери?