Вставка видео из ВКонтакта

Замечания, предложения, жалобы
Ответить
Аватара пользователя
ALPINE
Сообщения: 1320
Зарегистрирован: 21 сен 2011 20:44
Имя: Роман Шувалов
Откуда: 15-й квартал
Контактная информация:

Вставка видео из ВКонтакта

Сообщение ALPINE » 03 июн 2013 23:54

Уже не первый раз сталкиваюсь с проблемой. Нельзя в сообщение вставить видео из ВКонтакта.
Плагинчик наверняка ведь есть?

Сразу скажу, у контакта есть одна неприятная проблема, заключается она в том, что из ССЫЛКИ на видео (например, http://vk.com/video1114764_165146010) нельзя получить HTML-код для вставки, поскольку в HTML-коде требуется еще и hash-параметр. Это видно из кода, взятого непосредственно с ВКонтактовской странички:

Код: Выделить всё

<iframe src="http://vk.com/video_ext.php?oid=1114764&id=165146010&hash=0fa93be465b80448&hd=1" width="607" height="360" frameborder="0"></iframe>
Мы видим, что в HTML-коде есть три уникальных параметра:
- id пользователя (1114764)
- id видео (165146010)
- hash (0fa93be465b80448), отсутствующий в ссылке.

Именно поэтому плагины не умеют вставлять видео по ссылке и просят именно HTML-код, но размещают его не в сыром виде, а парсят его (вычисляют эти три параметра) и составляют новый код из этих параметров. Это сделано в целях безопасности. Работать будет примерно так. Пишем:

Код: Выделить всё

 [vkontakte]<iframe src="http://vk.com/video_ext.php?oid=1114764&id=165146010&hash=0fa93be465b80448&hd=1" width="607" height="360" frameborder="0"></iframe> <script> [/vkontakte] 
Код вытаскивает три параметра (oid, id, hash) и составляет по ним свой HTML-код, который в результате совпадет с исходным. А если кто-нибудь попытается хакнуть систему:

Код: Выделить всё

 [vkontakte]<script>hack();</script>[/vkontakte] 
Он получит фигу - параметры не будут обнаружены, хакерский код будет проигнорирован.

На всякий случай добавлю, что у Яндекса есть возможность на Я.Видео загружать видеоролики со сторонних сервисов, включая Контакт, но тэг [yavideo] с такими "левыми" не-яндексовскими роликами не работает. Проверял.

Vlan, есть возможность поставить плагинчик? Я его не искал, но уверен, что он есть. Если нет - напишем-с, матчасть изучена :)
Cycle Trail Map - велосипедная карта Самарской области. По ссылке подробное описание проекта и инструкция для загрузки на Андроид.
Карта теперь доступна и в велосамарском Навигаторе в качестве подложки.

Аватара пользователя
Vlan
Администратор
Сообщения: 7151
Зарегистрирован: 01 июл 2009 21:22
Имя: Владимир
Для связи: icq 60163739
Откуда: Тольятти
Контактная информация:

Re: Вставка видео из ВКонтакта

Сообщение Vlan » 04 июн 2013 08:17

ВК - большая дыра. Мне новые взломы сайта не нужны. Будет обкатанный мод - поставлю. Экспериментировать нет желания.
Истина рождается в спорах, но когда страсти кипят - истина испаряется.
Изображение

Аватара пользователя
ALPINE
Сообщения: 1320
Зарегистрирован: 21 сен 2011 20:44
Имя: Роман Шувалов
Откуда: 15-й квартал
Контактная информация:

Re: Вставка видео из ВКонтакта

Сообщение ALPINE » 04 июн 2013 12:28

Vlan писал(а):ВК - большая дыра. Мне новые взломы сайта не нужны. Будет обкатанный мод - поставлю. Экспериментировать нет желания.
Дыра - хм, первый раз слышу, но в любом случае здесь в качестве видео вставляется <iframe> с плеером внутри, а код этого iframe задан жёстко (меняются только id), так что взломать через него не удастся. Единственный путь взломать - это обхитрить парсер, заставив его дать на выходе левый код, но выходная строка все равно будет начинаться с "vk.com/video..." и далее по тексту.

Нашёл следующее:
Использование BBCode

Код: Выделить всё

[vkvideo]<iframe src="http://vk.com/video_ext.php?oid={IDENTIFIER}&id={NUMBER}&hash={TEXT}" width="607" height="360" frameborder="0"></iframe>[/vkvideo]
Замена HTML

Код: Выделить всё

<iframe src="http://vk.com/video_ext.php?oid={IDENTIFIER}&id={NUMBER}&hash={TEXT}" width="607" height="360" frameborder="0"></iframe>
Подсказка

Код: Выделить всё

[vkvideo]HTML-код ролика (не ссылка, а именно HTML-код)[/vkvideo]
Я так понимаю, это нужно вбить где-то в админке, в настройках собственных тэгов bbcode. Никаких сторонних плагинов.

По поводу безопасности. Если в парсере bbcode нет проверки на вредные символы, то для взлома этой штуки хакеру надо написать примерно так:
[vkvideo]<iframe src="http://vk.com/video_ext.php?oid="</iframe> <script>alert('hacked!');</script> "&id=1111111&hash=1111111" width="607" height="360" frameborder="0"></iframe>
То есть вместо идентификатора вписать закрывающий тэг </iframe> и далее любой HTML-код. Однако, судя по тому, как работают тэги [youtube] и [yavideo], bbcode проверяет на наличие таких символов и позволяет использвать в качестве параметров только строки, состоящие из цифр, букв, подчёркиваний и т.д., в общем закрыть тэг таким образом не получится, даже закрыть кавычку от параметра нельзя, и заэкранировать последнюю кавычку (вставив "\") тоже нельзя.

Так что всё должно быть хорошо. Решение, судя по найденному в инете, довольно популярное. Не вижу повода сомневаться насчёт безопасности.

Кстати, а в настройках этих тэгов случайно не указываются допустимые символы?
Cycle Trail Map - велосипедная карта Самарской области. По ссылке подробное описание проекта и инструкция для загрузки на Андроид.
Карта теперь доступна и в велосамарском Навигаторе в качестве подложки.

Аватара пользователя
ALPINE
Сообщения: 1320
Зарегистрирован: 21 сен 2011 20:44
Имя: Роман Шувалов
Откуда: 15-й квартал
Контактная информация:

Re: Вставка видео из ВКонтакта

Сообщение ALPINE » 04 июн 2013 12:30

P.S. и да, наверное, это непорядок? docs/CHANGELOG.html
Cycle Trail Map - велосипедная карта Самарской области. По ссылке подробное описание проекта и инструкция для загрузки на Андроид.
Карта теперь доступна и в велосамарском Навигаторе в качестве подложки.

Аватара пользователя
Галактионов
Сообщения: 5819
Зарегистрирован: 23 июн 2010 22:15
Имя: Александр

Re: Вставка видео из ВКонтакта

Сообщение Галактионов » 01 ноя 2015 00:26

какой умный бот..

Ответить