Недавно ко мне подошла коллега и сказала, что не может сохранить страницу ГОСТа с нелюбимого сайта.
«Надо ли нам грустить, старушка», — сказал я ей, открыл вышеупомянутый сайт и начал ковыряться и смотреть.
Оказалось, что алгоритм «защиты» достаточно прост — на прозрачную картинку 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); } })();
Способ применения: для реальной работы нужно взять кусок букмарклета в «рабочем» виде и сделать закладку в браузере, у которого вместо URL-адреса указан этот код. Затем перейдите на любую страницу нужного ГОСТа (именно страницу, а не аннотацию) и нажмите на закладку.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); } } )();
Все страницы настоящего ГОСТа будут представлены в виде изображений без какой-либо защиты.
Теги: #ghost #Greasemonkey #взлом #Greasemonkey
-
Как Правильно Удалить Жж
19 Oct, 24 -
Теги H4, H5, H6 В Комментариях
19 Oct, 24 -
Новая (Новая) Медианомика
19 Oct, 24 -
Космические Сверхзвуковые Парашюты
19 Oct, 24