2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Как открыть blob: ?
Сообщение15.06.2017, 04:06 
Похоже, это с подачи гугла, решившего осчастливить web новой технологией, теперь в коде страниц наблюдается такое явление типа blob, скрывающее от просмотра код того зачастую сомнительного содержимого, которое находится в нем. Что, например, используется отмороженными рекламщиками для залива реклам по всей странице на некоторых сайтах.
Существуют ли способы чтения сторонними скриптами содержимого blob-ов?

 
 
 
 Re: Как открыть blob: ?
Сообщение15.06.2017, 04:20 
Аватара пользователя
Самое прostoe в html5 (никакого jafaskripta)
Используется синтаксис HTML
<details><summary>Введение</summary>
Бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-
бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-
бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-
</details>

 
 
 
 Re: Как открыть blob: ?
Сообщение15.06.2017, 18:06 
Red_Herring в сообщении #1225562 писал(а):
Самое прostoe в html5 (никакого jafaskripta)

Вы уже второй раз оффтопите про свой summary. Это прикол такой? :D Тем более странно, что вы достаточно щепетильно относитесь к соотнесенности сообщения топику других юзеров.

 
 
 
 Re: Как открыть blob: ?
Сообщение15.06.2017, 18:33 
Аватара пользователя
gevaraweb
Я привел пример создания блоба и не считаю, что это был offtop. Если вы так считаете то нажмите красную кнопочку

 
 
 
 Re: Как открыть blob: ?
Сообщение15.06.2017, 18:46 
Red_Herring в сообщении #1225781 писал(а):
Я привел пример создания блоба и не считаю, что это был offtop. Если вы так считаете то нажмите красную кнопочку
Это не блоб вообще ни в каком смысле. Блоб - это бинарный объект, в данном контексте, очевидно, имеется в виду Blob из HTML5 File API. Красной кнопочки не было, но действительно, воздержитесь от оффтопа.

SmZZ в сообщении #1225559 писал(а):
Существуют ли способы чтения сторонними скриптами содержимого blob-ов?
А в каком виде у Вас блоб? Если есть javascript-объект, то его можно прочитать с помощью FileReader. Если есть blob URL типа blob:https://example.org/12345678-1234-5678-9876-543212345678, то его можно использовать в ajax запросе и получить данные, надо только все делать из контекста страницы.

 
 
 
 Re: Как открыть blob: ?
Сообщение15.06.2017, 19:01 
Был совершенно не в теме, но и то нашёл немного ответов на SO:
https://stackoverflow.com/questions/30864573/what-is-a-blob-url-and-why-it-is-used
https://stackoverflow.com/questions/14952052/convert-blob-url-to-normal-url
некоторой полезности.

(Оффтоп)

SmZZ в сообщении #1225559 писал(а):
Похоже, это с подачи гугла, решившего осчастливить web новой технологией
Давайте не смешивать вопрос со всякой ерундой, к тому же, не относящейся к существу вопроса (и то, что вы топикстартер, ничего не делает :mrgreen:). Если глянуть URL.createObjectURL на MDN и перейти оттуда по ссылке в разделе Specifications, можно видеть, что редакторы черновика — по человеку из Google и из Mozilla. Редакторы, не более и не менее. В любом случае цель поиска того, на кого повесить собак, сомнительна.

 
 
 
 Re: Как открыть blob: ?
Сообщение17.06.2017, 00:45 
Karan
Karan в сообщении #1225786 писал(а):
Если есть blob URL типа blob:https://example.org/12345678-1234-5678-9876-543212345678, то его можно использовать в ajax запросе и получить данные, надо только все делать из контекста страницы.
Да, этот всё более массово распространяющийся случай, когда какие-либо параметры в присылаемом серверами исходном коде страницы завернуты в нечитаемую форму с блоб-идентификатором.
На пробу, в целях обеспечения нужного контекста, использовал следующий код для проверки якобы существующей возможности чтения блоб данных через запрос:
код: [ скачать ] [ спрятать ]
Используется синтаксис Javascript
var head=wnd.document.getElementsByTagName('head')[0]||wnd.document.documentElement;//Определяем элемент, куда будем вставлять элемент 'script'
var script1=wnd.document.createElement('SCRIPT');//определяем элемент 'script'
script1.innerHTML="\
alert('Probe: '+window.location.href);\
var xhr = new XMLHttpRequest();\
xhr.responseType = 'blob';\
xhr.open('GET', document.getElementsByTagName('video')[0].src);\
xhr.onload = function() {\
   var recoveredBlob = xhr.response;\
   var reader = new FileReader;\
   reader.onload = function() {\
     var blobAsDataUrl = reader.result;\
     alert('blobAsDataUrl='+blobAsDataUrl);\
   };\
   reader.readAsDataURL(recoveredBlob);\
};\
xhr.send();\
"
;
script1.type="text/javascript";//определяем элемент 'script'
head.insertBefore(script1,head.firstChild);//Вставляем элемент 'script' в тело страницы и браузер его исполняет
 

Ну и в результате в консоли имеем NetworkError: A network error occurred. и запрос не производится. То ли не понимает протокола "blob:", то ли из-за кроссдоменных ограничений безопасности: другой протокол = другой домен, но тогда бы ругалось типа "security restriction", так что скорее первое. Хотя вариант со вставкой скрипта в тело страницы куда уж контекстнее?
А если выкинуть "blob:" из адреса, заменив xhr.open('GET', document.getElementsByTagName('video')[0].src);\ на
xhr.open('GET', document.getElementsByTagName('video')[0].src.replace('blob:',''));\
Тогда запрос нормально едет, но не в блоб, а на адрес http://site.com/blob-иден-ти-фи-ка-тор
И приезжает, что там обычно сайты по таким адресам отдают - код страницы 404 и т.п. (тут в алерте этот код страницы оказывается кодирован в base64)

arseniiv в сообщении #1225790 писал(а):
Был совершенно не в теме, но и то нашёл немного ответов на SO:
https://stackoverflow.com/questions/308 ... it-is-used
https://stackoverflow.com/questions/149 ... normal-url
некоторой полезности.
Ну полезность их явно недостаточна, так что есть другой вариант - что подобные "ответы" могут разбрасываться для создания ложной видимости, что blob-данные являются доступными к просмотру того, что там в них с интернета на компьютер прилетает.

 
 
 
 Re: Как открыть blob: ?
Сообщение17.06.2017, 00:57 
Если вам удобна теория заговора, пожалуйста. Я имел в виду, что оттуда, по крайней мере, ясно, какие объекты и функции искать на, скажем, MDN, чтобы написать код и убедиться.

(Подозреваю, что код или интерпретация его вывода неправильны. Я бы проанализировал его, но плохо разбираюсь в JS, да и документацию по этим вещам придётся читать. Лучше подожду, пока это сделает кто-то другой.)

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group