Да, исправились только в Chrome (проверил только в Chrome), а в FF нужно еще посмотреть и переделать.
Неблокируемые что имеется в виду, конечно кроме PrtScr... setInterval и куда Вы сможете врисовать, места же нету? |
ctrl+s, enter
и в Chrome и в FF все нормально, не работает :) Юзайте хоткеи, setInterval, alert ... |
Задача возможно и востребована, но нет проявлений этого.
Придумал, только себе сделал, и пользуйся сам, если есть желание и если где то это применимо. И нечего сервис рисовать - примерно так. А кому он нужен. Тем более что он шероховат еще. Это как бы уже и не вопрос, а скорее вывод. |
Gvozd, а если создать мост JS-AS и подгружать через swf отдельные фичи + проверку окружения? swf декомпелировать и вытащить код сможете? :)
|
Цитата:
в любом случае когда я говорю что "нету смысла защищать, так как всегда можно взломать", я не подразумеваю, что именно я могу все взломать |
Цитата:
|
Цитата:
В подавляющем числе случаев делать защиту просто экономический идиотизм. 1) Практически всегда обход защиты будет дешевле самой защиты. То есть взломщик находиться в более выгодном положении. 2) Для того чтобы информацию украли, обход ее защиты должен стоить меньше, чем создание информации с нуля. То есть для того чтобы не крали, стоимость защиты должна как минимум быть больше стоимости информации. Не так много информации, достойной такой защиты |
Самая простая защита - спрятать всё в фрейм - который отображает снимок части страницы в сanvas - у буржуинов - они сложены стопкой , пока юзер думает, страница скролируецо, и делаюца снимки, каким то макаром промежуточные варианты - почти мгновенно делаются из соседних кадров
|
Цитата:
|
Kolyaj
После таких вот защит сайт становится очень неудобным для обычного пользователя - пока да. И это имеет место в моем примере, не надраенном до блеска, а приведенном лишь для пробы вскрытия, выяснения проколов и выработки нужного направления. В настоящее время написал и открыл новый сайт, где использовал только одну часть (из многих) по скрытию только используемых скриптов, не стилей и не контента. Сайт пока минималистский, но в дальнейшем возможно расширение, развитие сайта. Так вот при его открытии или входе на сайт по логину и паролю абсолютно не наблюдается какого либо торможения или неудобства для посетителя. Сайт работает, открываются новые страницы с данными, пишутся новые вопросы, ответы, перевод, скрытый скрипт нечем внешне себя не проявляет, к тому же когда занимаешься вопросом появляются новые варианты его совершенствования. Конечно, если нужно скрыть еще и контент, то потребуются и некоторые издержки, примерно такие как и в моем приведенном выше примере, т.е. перезагрузка страницы и возможно с такими же неприятными сообщениями. Адрес сайта здесь не привожу, а если есть у кого желание посмотреть пишите, в личку отвечу при условии не публикации здесь этого вебадреса. |
Цитата:
Я сейчас в одном своем проекте буду использовать десктопное приложение, которое является составной частью основного приложения. И ес-но, в десктопное приложение встроена проверка ключа на лицензионном сервере. Ну, а часть когда основного приложения защищена ioncube. Бюджет защиты 200$. А вот бюджет взлома (если заказывать) будет, как мне кажется, по-дороже. Ну и второй проект у меня есть в котором идет связка AS-JS. Примерно та же история: обфускация swf и проверка ключа + Ioncube с проверкой ключа. Выпилить swf вообще невозможно т.к. он выполняет важную функцию в приложении. Бюджет 60$. Я не то чтобы спорю. Понимаю, что Вы правы по больше части. Просто предлагаю альтернативу. |
Цитата:
Цитата:
|
Цитата:
Десктопное приложение может выдергивать с сайта контент. Т.е. сайт как каталог, а клиентское приложение для работы с защищенным контентом. И пример с swf тоже можно развить: в swf можно подгружать динамический текстовый контент и он будет неплохо защищен от копирования. |
Экономический идиотизм говорите, а я нашел применение - во фрилансе, например.
Там, если знаете, есть фишка такая: защищенная сделка, и почему защищать должен кто то а не я сам свои же разработки скриптов до продажи заказчику? Теперь преспокойно могу демонстрировать заказчику свеженаписанный js скрипт без риска остаться без оплаты :) Уже не разрабатываю сервис, но новые решения по этой теме теперь сами приходят. Сейчас можете посмотреть совершенно новый вариант, в котором нет сообщений об обновлении страницы, или что Вы мышку не там держите во время загрузки. В новом примере защита направлена на картинку и скрипты, от предыдущего кода осталось только начало, т.е. около 5%. Адрес прежний: webauction.biz/secret/service.s |
Цитата:
И заодно: За мой 2.5-летний опыт активного фриланса, меня всегда защищала протекция. Я просто не принимался за работу, и уж тем более не показывал результатов до того как на моем счету окажется протекция вебмани. И за это время меня кинули два раза - в оба те раза я нарушил правило протекции. Соответсвенно с протекцией у меня не было никаких проблем даже работать на сервере заказчика, если того требовала ситуация, и мне не нужно было оставлять закладок каких-либо. |
Цитата:
1 минута с вставкой публичной ссылки, так как форум не позволяет такие длинные сообщения отправлять http://clck.ru/d/thikxWhh1AYpV |
так смешно наблюдать за людьми которые пытаются что-то в браузере скрыть. всего требуется нажать три клавиши ctrl+shift+i и все содержимое видно, да и ваши вставка картинки видна.
|
Ух ты! Вы и эти кнопки знаете!
От Вас спасу немаэ ! Ха ! Так а где же скрипты ??? ctrl+shift+... ? |
Прошу прощения, если проскользнула непочтительность,
и то: взяли бы да помогли мучающемуся :(( тому как keydown, keypress, keyup, blur не совсем то что надо в данном случае. |
Фух, ОСИНИЛО :))
Нормальному юзеру что - посмотрел страничку да закрыл, а вот юзверю надо пробовать добраться до той картинки, до самого скрипта, вот тут ему и солим, пусть ОК жмет почаще. Так что и юзабельность не теряется и овцы целы. Сейчас только картинку заменю, чтобы обновление было полным, вот и покажете новую картинку. |
Цитата:
И если при переключению на другой табик, или окно, у него выводится грозное предупреждение, и пропадает контент - это не нормально. А еще не нормально писать обычные картинки в dataURL - их нельзя закешировать Достать картинку было очень легко: в заранее открытой консоли Chrome было услужливо написано: Цитата:
|
Спасибо!
Вот так по чуть чуть, все ближе к финишу. Теперь консоль. (а картинку заменил) Да, наверно до лучших времен придется отложить вопрос. Может мысль какая появится :) |
В консоли все так же есть картинка, но уже спрятал js !
и в консоли его не видно. Картинка на очереди и в общем то придумал что с ней делать (кеширование не предусматривается), но наверно уже не сегодня. |
мда скрипты в localStorage засунуть это конечно оригинально, но не идеально.
Да и редиректов слишком многовато, чисто ради того что бы спрятать это: newdiiv = document.createElement('script'); newdiiv.src = "?pversio=eXiSP4YKkyKH"; document.getElementsByTagName('head')[0].appendChild( newdiiv ); try{ isChrome=(navigator.userAgent.toLowerCase().indexOf('chrome')> -1); var cleer='<img src="data:image/jpg;base64, /9j/4AAQSkZJRgABAQEASABIAAD/ ... и тут вся картинка ... '; if ( isChrome&&document.getElementsByTagName('meta').length != 13 ) { self.location.href = 'http://webauction.biz'; } else if ( !isChrome&&document.getElementsByTagName('meta').length != 5 ) { self.location.href = 'http://webauction.biz'; } if ( document.getElementsByTagName('meta')[0].content != 'NO-CACHE' || document.getElementsByTagName('meta')[1].content != '-1' || document.getElementsByTagName('meta')[2].content != 'no-cache' || document.getElementsByTagName('meta')[3].content != 'NO-CACHE, must-revalidate') { self.location.href='http://webauction.biz'; } else { if ( typeof( Storage ) !== "undefined" ) { localStorage.cleer = cleer; self.location = "http://webauction.biz/secret/service.s?versionp=pKuIfkeaorl6"; } else if ( navigator.userAgent.indexOf('MSIE')> -1 ) { newdiiv = document.createElement('div'); newdiiv.style.position = 'absolute'; newdiiv.style.top='45%'; newdiiv.style.left='45%'; newdiiv.innerHTML = '<input type="button" value="Смотреть !" onclick="MakePopup(event)">'; document.getElementsByTagName('body')[0].appendChild( newdiiv ); newdiiv = document.createElement('script'); newdiiv.src="?sior=pKuIfkeaorl6"; document.getElementsByTagName('head')[0].appendChild( newdiiv ); } else { alert('Обновите версию Вашего браузера для просмотра этой страницы') } } } catch( e ) { } var addHandler = function( ob, e, han, usC ) { if ( ob.addEventListener ) { ob.addEventListener( e, han, usC ? usC : false ) } else if ( ob.attachEvent ) { ob.attachEvent( 'on' + e, han ) } }; cleer += 'znw v/Z1yRkRN+VB0q8z/qH/ACr7vh+DvhEJt+ynBOTxV1PhD4SLZ+ygcY+70o5US2mfAP8AZN6cfuH5 6cUp0i9BwYXH4V9/t8GPC0u3bFtC9BgVUuvgb4fkYsBg4wPlqrIXunwQdNuh1jb8qabC5H/LNvyr 7fvfgFpJI8onA9qwpvgBAXI3kLnOcUcqC0D47NnOOqH8qK+uf+GfrZuXmYH0Aoo5V3HaB9ESaazd VqtLo7kH5K6nAPUUzsfrWQXONl0F27YqlceG5G7Cu7YD0FROB6CgLnnc3hRm9KoT+D2OeB+VemSK OOB+VRSAYPAqkO55RceCm9B+VZ8/gdiDwPyr16VVx90dPSqsirj7o/KnYdzx2fwKxJ+VfyqnJ4EY Z+Rfyr2WVV/uj8qruq8/KPyphc8bfwKw/gWmf8IQwP3Fr2FlXP3R09KYqJu+4vX0osFzyNfBrKfu CpovCTL/AMsxXqoRd33R+VKUT+6v5UWC55pF4YZcHYBV+Dw+64+SvQY0TB+VfyqRFX+6Pyp2C5xV tojqR8orTtdKYcba6qNVwPlH5VZiVcfdH5VNgOfttPdQK07a1ZR0rUhUYHA6+lWYgMDgVIrlK3gI 5Iq7DGc1ZUDB4FTKBg8CkDI0UVOAO1IlSDp+NISFABHQUoQHsKB0pw+7SENMSnqBTGhX+6KmpB0N MLlVraMn7opGtkA+7UxJzQ1A22VWgX+6Khe3U/wirr9KaelAXM57VO6iojboP4avv1pkgFUBnPEv 92oWUDoKvOBnpURA3dKAKLr7VES46Cr7AZPFNwPLJwKdxlLzpF6qaeLsr1WpWAx0FRso9B+VO4rD l1BF6j9KUaqgPU/lUAVd3QflQVX+6Pyp3CxaGsgdAx/Cmya7LjhGquAPQUoVfQflQ5DUUIdbn7K3 5UHWJmHzK/5U7A9BS4GBx3pXHypEDaq+f9TKffFFTkDNFFxcqP/Z">'; MakePopup = function( event ) { if ( window.createPopup ) { var mypopup = window.createPopup(); var popupBody = mypopup.document.body; popupBody.innerHTML = '<center><br><br><br>'+ cleer+'</center>'; popupBody.onclick = function() { return false; }; popupBody.oncontextmenu = function() { popupBody.innerHTML = ''; popupBody.innerHTML = '<center><br><br><br>'+ cleer+'</center>'; } addHandler( document, 'dragstart', function( e ) { alert(' OK ? :)) '); return false; }); addHandler( document, 'beforeprint', function( e ) { alert(' OK ? :)) '); return false; }); addHandler( document, 'keydown', function( e ) { return false }); mypopup.show( 0, 0, ( window.innerWidth ) ? window.innerWidth : ( ( document.all ) ? document.body.offsetWidth : null ), ( window.innerHeight ) ? window.innerHeight : ( ( document.all ) ? document.body.offsetHeight : null ), document.body ); } else { alert('Обновите версию Вашего браузера для просмотра этой страницы') } }; function RemovePopup(event) { if ( popupIsShown ) { var relation = popupWindow.compareDocumentPosition( event.target ); var clickInPopup = ( event.target == popupWindow ) || ( relation & Node.DOCUMENT_POSITION_CONTAINED_BY ); if ( !clickInPopup ) { document.body.removeChild( popupWindow ); window.removeEventListener( 'click', RemovePopup, true ); popupIsShown = false; } } } try{ var rembo = document.getElementsByTagName('script'); for( var j = rembo.length, i = j-1; i > -1; i-- ) { rembo[i].parentNode.removeChild( rembo[ i ] ) } } catch( e ) { } |
devote
Ну, и как дальше мне двигаться ? В предыдущем варианте все же была подсказка, три клавиши Ctrl+... , перед этим тоже была подсказка, три клавиши Ctrl+... . Люди помогли, спасибо. У Вас видимо клавиш больше :) |
Цитата:
|
Век живи, век учись, ...
(это я про себя). За что боролись. Грабли. Наверно потому что мысли о закрытии, а не об открытии, все наоборот. Спасибо devote ! ! И над этим уже можно думать, хотя вариантов пока нет :) |
Нет ну Вы подумайте только: вот же приемчики:
чтобы узнать js надо его ВЫКЛЮЧИТЬ ! |
Цитата:
|
От отключенного js уже в общем то придумал пару вариантов, только время и желание надо чтобы записать по новому. Главное известно что искоренять надо.
А вот то чего боялся, снифер - зверь! А какой free можно задействовать в данном случае ? |
Цитата:
И скажите пожалуйста: я вам в личку разве о нем не говорил? |
Наверно это именно то что мне нужно. Gvozd спасибо!
|
Новая версия, новый адрес:
webauction.biz/secret/demo.s Копируете здесь этот адрес ( Ctrl+c ) и открыв нормальный (с html5) браузер пишете его в адресной строке (Ctrl+v). И там ссылка "Go" для просмотра картинки, и вот это фото, что открывается в браузере через несколько секунд, и предлагается сохранить себе на диск всеми возможными способами. Мышкой двигать по экрану в начале не требуется, пока не увидите что именно дает такое движение. |
var ssto, mg = 'Sicret Service Present', t_m = 'P r e s e n t ', qp = 0, j = t_m.length + 1, siZe = 8, n = 0, clrPos = 0, mP = 0, cS = 10, step = 8, pos1 = 0, z, k = 0, qp = 0, rc = 2, gc = 7, bc = 4, zr = 1, zg = 0, zb = 0, Color = new Array('ff', 'f7', 'ee', 'dd', 'cc', 'bb', 'aa', '99', '88', '77', '66', '55', '44', '33', '22', '11', '00'), cl = new Array('ff0000', '00ff9f', '9933ff', '0f0ff0'), Cl = Color.length ... |
danik.js, спасибо за ответ!
|
|
Чел жжет ))
VANjs, а как это относится к теме? Если я не ошибаюсь - для предотвращения таких казусов создан сервис яндекс - антиплагиат. |
яндекс да..., но плагиат живой и поныне,
и там вроде как бороться намерены, а может они и серьезны, а может они и отвественны, к тому же может и вполне логичны, а плагиат все живет, и ссылка всего лишь конкретная реалия. А вот к антиплагиату присоединиться влом? имею в виду не только взлом :)) за что спасибо - сам же об этом прошу, разломайте пожалуйста, так что правда благодарен всем участникам форума, откликнувшимся в этой теме, но присоединиться в части создания этого самого антиплагиата. danik.js, вот и подсказали бы VANjs как проходил Ваш последний сеанс раскодировки, т.к. без знания этого момента невозможно продвижение вперед. |
Если честно, то я не успел "честно" вытащить скрипт. Для начала отключил JS в браузере. При переходе по ссылке получаем скриптик, который нужно немного изучить. В общем я его не успел доковырять как в какой-то момент просто остановил загрузку страницы и вытянул скрипт через sessionStorage.getItem('a'). А так да, с начала был удивлен, пытаясь обнаружить какие-то зацепки )
|
Грабли!
Опять я наступил :(( опять отключение js. Привык что js то у меня не отключен никогда, да и вся схема то построена на работающем скрипте. Ну да ничего, можно что нибудь придумать и для этого случая, зная то как Вы к ему прошли. Спасибо danik.js ! И уж совсем весело было бы, ну не самому же опять изобретать велосипед, если бы гденить почитать про криптоалгоритм примерно такой: в доступном для чтения js виден весь код расшифрования, ключи случайные числа, получаемые в этом же скрипте, при этом текст, приходящий с сервера раскодируется этими же ключами. Может не совсем понятно изложил, но что то в этом роде. |
Часовой пояс GMT +3, время: 12:02. |