Госты В Стиле Greasemonkey

Недавно ко мне подошла коллега и сказала, что не может сохранить страницу ГОСТа с нелюбимого сайта.

http://protect.gost.ru .

«Надо ли нам грустить, старушка», — сказал я ей, открыл вышеупомянутый сайт и начал ковыряться и смотреть.

Оказалось, что алгоритм «защиты» достаточно прост — на прозрачную картинку Pixel.gif в стиле CSS накладывается картинка со страницей ГОСТа.

В результате при попытке сохранить картинку через «Сохранить изображение как.

» в Firefox мы сохраняем не нужную нам страницу ГОСТа, а Pixel.gif. «Лень — двигатель прогресса», — подумал я и написал небольшой скрипт для GreaseMonkey, которым делюсь со своими читателями хабра.

  


// ==UserScript== // @name GostRu // @namespace http://protect.gost.ru/* // @description Delete pixel image under Gost // @include http://protect.gost.ru/* // ==/UserScript== var s_l=document.styleSheets.length; for (j=0;j<s_l;j++) { var st=document.styleSheets[j].

cssRules, st_l=st.length; for (i=0;i<st_l;i++) { if (st[i].

selectorText==='.

face') { im=st[i].

style.backgroundImage; break; } } } im=im.split('"')[1]; if (im!=='') { var img=document.getElementsByTagName('img'), img_l=img.length; for (i=0;i<img_l;i++) { if (img[i].

className==='face') { img[i].

src=im; } } }

После установки скрипта мы получаем возможность сохранить именно ту страницу, которая нам нужна.

Прекрасно работает в Firefox 3.6.3 + GreaseMonkey 0.8.20100408.6. Хабраюзер нанопыль предложил уже существующий скрипт с аналогичным функционалом на Пользовательский скрипт.орг (Прошу прощения за сокращение ссылки, у меня недостаточно опыта, чтобы «обмануть» хабрапарсер).

Хабраюзер Дэвид_мз Я написал букмарклет для развертывания ГОСТов: «рабочая» версия:



javascript:(function() { var ids = []; for(var i=0;i<document.links.length;i++) { var a = document.links[i]; if (a.href.indexOf('&pageK=') < 0 || !a.firstChild) continue; ids.push(a.href.substr(a.href.indexOf('pageK=') + 6, 36)); } document.open(); document.write('<html><body></body></html>'); document.close(); for(var i=0;i<ids.length;i++) { var img = document.createElement('img'); img.src="image.ashxЭpage="+ids[i]; document.body.appendChild(img); } })();

«читабельная» версия:


javascript:( function() { var ids = []; for(var i=0;i<document.links.length;i++) { var a = document.links[i]; if (a.href.indexOf('&pageK=') < 0 || !a.firstChild) continue; ids.push(a.href.substr(a.href.indexOf('pageK=') + 6, 36)); } document.open(); document.write('<html><body></body></html>'); document.close(); for(var i=0;i<ids.length;i++) { var img = document.createElement('img'); img.src="image.ashxЭpage="+ids[i]; document.body.appendChild(img); } } )();

Способ применения: для реальной работы нужно взять кусок букмарклета в «рабочем» виде и сделать закладку в браузере, у которого вместо URL-адреса указан этот код. Затем перейдите на любую страницу нужного ГОСТа (именно страницу, а не аннотацию) и нажмите на закладку.

Все страницы настоящего ГОСТа будут представлены в виде изображений без какой-либо защиты.

Теги: #ghost #Greasemonkey #взлом #Greasemonkey

Вместе с данным постом часто просматривают: