|
|
|||||
Аутентификация на RED5
Написал флешку которая пишет звук и видео на сервер с red5.
Использую дефолтный WEbApp OflaDemo. НО вопрос как обеспечить секюрность доступа к серваку netconnet тупо nc.connect( "rtmp://72.58.56.52/OflaDemo/ то есть любой Вася сможет подконектиться и напихать мне туда че угодно. Как защититься? то ест уантентифицировать на сервере соединение по какому нибудь паролю хотябы. Спасибо кто откликнется. Последний раз редактировалось protey; 04.11.2008 в 13:13. |
|
|||||
Самый простейший способ это генерить какойни-будь ключ во флешке
и передавать его в параметрах при коннекте, и если ключ не валидный то реджектить коннект.
__________________
Сам себе репортер |
|
|||||
Ну я так примрно и предполагал тока в java я не сведуший, смотрю на сие диво и ние не понимаю куда тут вставить проверку этого секретного ключа... Подсобите плиззз!
public class Application extends ApplicationAdapter { private IScope appScope; private IServerStream serverStream; /** {@inheritDoc} */ @Override public boolean appStart(IScope app) { appScope = app; return true; } /** {@inheritDoc} */ @Override public boolean appConnect(IConnection conn, Object[] params) { // Trigger calling of "onBWDone", required for some FLV players measureBandwidth(conn); if (conn instanceof IStreamCapableConnection) { IStreamCapableConnection streamConn = (IStreamCapableConnection) conn; SimpleConnectionBWConfig bwConfig = new SimpleConnectionBWConfig(); bwConfig.getChannelBandwidth()[IBandwidthConfigure.OVERALL_CHANNEL] = 1024 * 1024; bwConfig.getChannelInitialBurst()[IBandwidthConfigure.OVERALL_CHANNEL] = 128 * 1024; streamConn.setBandwidthConfigure(bwConfig); } return super.appConnect(conn, params); } /** {@inheritDoc} */ @Override public void appDisconnect(IConnection conn) { if (appScope == conn.getScope() && serverStream != null) { serverStream.close(); } super.appDisconnect(conn); } } Последний раз редактировалось protey; 05.11.2008 в 11:36. |
|
|||||
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,181
|
если запись будет осуществляться из браузера, то Вася при отсутствие crossdomain'a на сервере с соответствующими настройками получит security error, если поптытается передать видео из своей флэшки.
|
|
|||||
CrazyFlasher - поподробнее можно?
|
|
|||||
Цитата:
Пример фалика можно у видить в приложении (сервисе) root: В данном случае доступ ограничен только входом с localhost (локальная машина) и доменом оканчивающися на .local. Вам же нада просто прописать свой домен. |
|
|||||
Не не пашет кроссдомайн, может потому, что сама флешка написана на AC 2.0 но суть защиты не в этом!!! Например на сервере 72.58.56.52 поднят RED5 с дефолтным портом 1935 (для rtmp). Злоумышленик просек что на данном хосте
есть RED5 и быстро пишет свой рекордер прописывает в в нем nc.connect('rtmp://72.58.56.52/OflaDemo/'); и всё теперь он может смело пихать на сервер видео и аудио до тех пор пока на винте сервака не закончится место и он тупо не ляжет! Попробовал пойти по пути другому на фаере сервака прописал: - ipfw add deny tcp from any to 72.58.56.52 1935 in via em0 #запретить всем юзать порт 1935 - ipfw add pass tcp from me to 72.58.56.52 1935 # разрешить соединения по порту 1935 только от себя во флеше прописываю: nc.connect('rtmp://localhost/OflaDemo/'); Запускаю прямо на серваке флешку: http://72.58.56.52/recorder.html не конектиться к медиа. Оказывается флешка localhost не понимает. КТО ЗНАЕТ ПОЧЕМУ????? Я всегда думал что флеша определяет localhost там где она запущена а не у клиента. Подскажите может нужны какет то шаманства? чтоб флеша запущенаная браузером на хосте http://72.58.56.52 понимала его как и localhost ... |
|
|||||
А почему флешка должна разрешать локалхост, как место где она зарущена?
Домен, на который зашел пользователь может грузить флешку совсем с другого домена. И что тут будет локалхостом? Распространенная практика что адрес ртмп сервера передается через флэшварсы.
__________________
Сам себе репортер |
|
|||||
На самом деле флешка действительно считает localhost то место где она запущена. Вот только все флешки запускаются не на сервере а у клиента плагином браузера или компонентом ActiveX!!! (то есть клиентская машина и есть localhost).
По поводу RED5 если кроссдоменный файл не работает то пожалуй: Цитата:
|
|
|||||
ZVEr13 - с секретным ключем мне тоже идея нравицо НО как его принять и обработать на серверной стороне???
|
Часовой пояс GMT +4, время: 11:24. |
|
« Предыдущая тема | Следующая тема » |
|
|