Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как скрыть <style></style> javascript-ом (https://javascript.ru/forum/misc/4015-kak-skryt-style-style-javascript-om.html)

jsVAN 28.05.2012 13:05

Да, исправились только в Chrome (проверил только в Chrome), а в FF нужно еще посмотреть и переделать.
Неблокируемые что имеется в виду, конечно кроме PrtScr...
setInterval и куда Вы сможете врисовать, места же нету?

jsVAN 28.05.2012 20:03

ctrl+s, enter
и в Chrome и в FF все нормально, не работает :)
Юзайте хоткеи, setInterval, alert ...

jsVAN 29.05.2012 13:26

Задача возможно и востребована, но нет проявлений этого.
Придумал, только себе сделал, и пользуйся сам, если есть желание и если где то это применимо.
И нечего сервис рисовать - примерно так. А кому он нужен.
Тем более что он шероховат еще.
Это как бы уже и не вопрос, а скорее вывод.

cmd 29.05.2012 13:45

Gvozd, а если создать мост JS-AS и подгружать через swf отдельные фичи + проверку окружения? swf декомпелировать и вытащить код сможете? :)

Gvozd 29.05.2012 21:26

Цитата:

Сообщение от cmd
swf декомпелировать и вытащить код сможете?

у меня имеется опыт декомпиляции flash-а, так что в общем случае, да смогу.
в любом случае когда я говорю что "нету смысла защищать, так как всегда можно взломать", я не подразумеваю, что именно я могу все взломать

Раед 29.05.2012 21:32

Цитата:

Сообщение от Gvozd
в любом случае когда я говорю что "нету смысла защищать, так как всегда можно взломать", я не подразумеваю, что именно я могу все взломать

Уже лучше. Значит от частично защитить контент хоть от кого-то всё же можно

Gvozd 29.05.2012 22:31

Цитата:

Сообщение от Раед
Значит от частично защитить контент хоть от кого-то всё же можно

От домохозяйки бабы Дуси, например)

В подавляющем числе случаев делать защиту просто экономический идиотизм.
1) Практически всегда обход защиты будет дешевле самой защиты.
То есть взломщик находиться в более выгодном положении.
2) Для того чтобы информацию украли, обход ее защиты должен стоить меньше, чем создание информации с нуля.
То есть для того чтобы не крали, стоимость защиты должна как минимум быть больше стоимости информации.
Не так много информации, достойной такой защиты

Deff 30.05.2012 02:39

Самая простая защита - спрятать всё в фрейм - который отображает снимок части страницы в сanvas - у буржуинов - они сложены стопкой , пока юзер думает, страница скролируецо, и делаюца снимки, каким то макаром промежуточные варианты - почти мгновенно делаются из соседних кадров

Kolyaj 30.05.2012 08:58

Цитата:

Сообщение от Gvozd
В подавляющем числе случаев делать защиту просто экономический идиотизм.
1) Практически всегда обход защиты будет дешевле самой защиты.
То есть взломщик находиться в более выгодном положении.
2) Для того чтобы информацию украли, обход ее защиты должен стоить меньше, чем создание информации с нуля.
То есть для того чтобы не крали, стоимость защиты должна как минимум быть больше стоимости информации.
Не так много информации, достойной такой защиты

3) Как правило, после таких вот защит сайт становится очень неудобным для обычного пользователя, а значит снижается доход с него.

jsVAN 30.05.2012 22:55

Kolyaj
После таких вот защит сайт становится очень неудобным для обычного пользователя - пока да.
И это имеет место в моем примере, не надраенном до блеска, а приведенном лишь для пробы вскрытия, выяснения проколов и выработки нужного направления.
В настоящее время написал и открыл новый сайт, где использовал только одну часть (из многих) по скрытию только используемых скриптов, не стилей и не контента. Сайт пока минималистский, но в дальнейшем возможно расширение, развитие сайта. Так вот при его открытии или входе на сайт по логину и паролю абсолютно не наблюдается какого либо торможения или неудобства для посетителя. Сайт работает, открываются новые страницы с данными, пишутся новые вопросы, ответы, перевод, скрытый скрипт нечем внешне себя не проявляет, к тому же когда занимаешься вопросом появляются новые варианты его совершенствования. Конечно, если нужно скрыть еще и контент, то потребуются и некоторые издержки, примерно такие как и в моем приведенном выше примере, т.е. перезагрузка страницы и возможно с такими же неприятными сообщениями. Адрес сайта здесь не привожу, а если есть у кого желание посмотреть пишите, в личку отвечу при условии не публикации здесь этого вебадреса.

cmd 31.05.2012 23:23

Цитата:

Сообщение от Gvozd (Сообщение 177412)
От домохозяйки бабы Дуси, например)

В подавляющем числе случаев делать защиту просто экономический идиотизм.
1) Практически всегда обход защиты будет дешевле самой защиты.
То есть взломщик находиться в более выгодном положении.
2) Для того чтобы информацию украли, обход ее защиты должен стоить меньше, чем создание информации с нуля.
То есть для того чтобы не крали, стоимость защиты должна как минимум быть больше стоимости информации.
Не так много информации, достойной такой защиты

Не уверен.

Я сейчас в одном своем проекте буду использовать десктопное приложение, которое является составной частью основного приложения. И ес-но, в десктопное приложение встроена проверка ключа на лицензионном сервере. Ну, а часть когда основного приложения защищена ioncube. Бюджет защиты 200$. А вот бюджет взлома (если заказывать) будет, как мне кажется, по-дороже.

Ну и второй проект у меня есть в котором идет связка AS-JS. Примерно та же история: обфускация swf и проверка ключа + Ioncube с проверкой ключа. Выпилить swf вообще невозможно т.к. он выполняет важную функцию в приложении. Бюджет 60$.

Я не то чтобы спорю. Понимаю, что Вы правы по больше части. Просто предлагаю альтернативу.

Gvozd 31.05.2012 23:36

Цитата:

Сообщение от cmd
Я сейчас в одном своем проекте буду использовать десктопное приложение, которое является составной частью основного приложения. И ес-но, в десктопное приложение встроена проверка ключа на лицензионном сервере. Ну, а часть когда основного приложения защищена ioncube. Бюджет защиты 200$. А вот бюджет взлома (если заказывать) будет, как мне кажется, по-дороже.

Это не имеет ни малейшего отношения к обсуждаемому вопросу.
Цитата:

Сообщение от cmd
Ну и второй проект у меня есть в котором идет связка AS-JS. Примерно та же история: обфускация swf и проверка ключа + Ioncube с проверкой ключа. Выпилить swf вообще невозможно т.к. он выполняет важную функцию в приложении. Бюджет 60$.

проверка ключа и защита серверного кода, как-то мешает вашим пользователям скопипастить кусок текста с вашего сайта? 0_О

cmd 01.06.2012 23:20

Цитата:

Сообщение от Gvozd (Сообщение 177860)
Это не имеет ни малейшего отношения к обсуждаемому вопросу.

Что значит не имеет? Я предлагаю возможные решения, которые не очень дорогие и не требуют криптографических изысканий.

Десктопное приложение может выдергивать с сайта контент. Т.е. сайт как каталог, а клиентское приложение для работы с защищенным контентом.

И пример с swf тоже можно развить: в swf можно подгружать динамический текстовый контент и он будет неплохо защищен от копирования.

jsVAN 06.06.2012 00:26

Экономический идиотизм говорите, а я нашел применение - во фрилансе, например.
Там, если знаете, есть фишка такая: защищенная сделка, и почему защищать должен кто то а не я сам свои же разработки скриптов до продажи заказчику? Теперь преспокойно могу демонстрировать заказчику свеженаписанный js скрипт без риска остаться без оплаты :)

Уже не разрабатываю сервис, но новые решения по этой теме теперь сами приходят.
Сейчас можете посмотреть совершенно новый вариант, в котором нет сообщений об обновлении страницы, или что Вы мышку не там держите во время загрузки.
В новом примере защита направлена на картинку и скрипты, от предыдущего кода осталось только начало, т.е. около 5%.
Адрес прежний: webauction.biz/secret/service.s

Gvozd 06.06.2012 00:45

Цитата:

Сообщение от jsVAN
Там, если знаете, есть фишка такая: защищенная сделка, и почему защищать должен кто то а не я сам свои же разработки скриптов до продажи заказчику? Теперь преспокойно могу демонстрировать заказчику свеженаписанный js скрипт без риска остаться без оплаты

То есть по вашему это разумно тратить на защиту больше времени, чем на написание самого защищаемого скрипта? ну-ну.
И заодно:
За мой 2.5-летний опыт активного фриланса, меня всегда защищала протекция.
Я просто не принимался за работу, и уж тем более не показывал результатов до того как на моем счету окажется протекция вебмани.
И за это время меня кинули два раза - в оба те раза я нарушил правило протекции.
Соответсвенно с протекцией у меня не было никаких проблем даже работать на сервере заказчика, если того требовала ситуация, и мне не нужно было оставлять закладок каких-либо.

Gvozd 06.06.2012 00:49

Цитата:

Сообщение от jsVAN
В новом примере защита направлена на картинку и скрипты, от предыдущего кода осталось только начало, т.е. около 5%.
Адрес прежний: webauction.biz/secret/service.s

30 секунд с набором этого сообщения
1 минута с вставкой публичной ссылки, так как форум не позволяет такие длинные сообщения отправлять
http://clck.ru/d/thikxWhh1AYpV

devote 06.06.2012 01:25

так смешно наблюдать за людьми которые пытаются что-то в браузере скрыть. всего требуется нажать три клавиши ctrl+shift+i и все содержимое видно, да и ваши вставка картинки видна.

jsVAN 06.06.2012 12:14

Ух ты! Вы и эти кнопки знаете!

От Вас спасу немаэ !

Ха ! Так а где же скрипты ???
ctrl+shift+... ?

jsVAN 06.06.2012 12:30

Прошу прощения, если проскользнула непочтительность,
и то: взяли бы да помогли мучающемуся :((
тому как keydown, keypress, keyup, blur не совсем то что надо в данном случае.

jsVAN 06.06.2012 14:34

Фух, ОСИНИЛО :))
Нормальному юзеру что - посмотрел страничку да закрыл,
а вот юзверю надо пробовать добраться до той картинки, до самого скрипта, вот тут ему и солим, пусть ОК жмет почаще.
Так что и юзабельность не теряется и овцы целы. Сейчас только картинку заменю, чтобы обновление было полным, вот и покажете новую картинку.

Gvozd 06.06.2012 14:49

Цитата:

Сообщение от jsVAN
Нормальному юзеру что - посмотрел страничку да закрыл,

нормальный юзер вообще-то одновременно серфит по более чем одному сайту
И если при переключению на другой табик, или окно, у него выводится грозное предупреждение, и пропадает контент - это не нормально.
А еще не нормально писать обычные картинки в dataURL - их нельзя закешировать


Достать картинку было очень легко:
в заранее открытой консоли Chrome было услужливо написано:
Цитата:

Resource interpreted as Image but transferred with MIME type image/jpg: "data:image/jpg;base64, /9j/4AAQSkZJRgABAQEASABIAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIF hZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAA AAAA .....
Публиковать картинку - лень

jsVAN 06.06.2012 15:11

Спасибо!
Вот так по чуть чуть, все ближе к финишу. Теперь консоль.
(а картинку заменил)
Да, наверно до лучших времен придется отложить вопрос. Может мысль какая появится :)

jsVAN 06.06.2012 19:14

В консоли все так же есть картинка, но уже спрятал js !
и в консоли его не видно.

Картинка на очереди и в общем то придумал что с ней делать (кеширование не предусматривается), но наверно уже не сегодня.

devote 06.06.2012 19:39

мда скрипты в 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 ) { }

jsVAN 06.06.2012 20:54

devote
Ну, и как дальше мне двигаться ?
В предыдущем варианте все же была подсказка, три клавиши Ctrl+... ,
перед этим тоже была подсказка, три клавиши Ctrl+... . Люди помогли, спасибо.
У Вас видимо клавиш больше :)

devote 06.06.2012 21:05

Цитата:

Сообщение от jsVAN
У Вас видимо клавиш больше

я просто выключил скрипты на странице, что бы не редиректило, и скопировал скрипты с каждой редиректнутой страницы. На все провсе заняло 5 минут.

jsVAN 06.06.2012 21:27

Век живи, век учись, ...
(это я про себя).
За что боролись. Грабли. Наверно потому что мысли о закрытии, а не об открытии, все наоборот.

Спасибо devote ! !

И над этим уже можно думать, хотя вариантов пока нет :)

jsVAN 06.06.2012 21:29

Нет ну Вы подумайте только: вот же приемчики:
чтобы узнать js надо его ВЫКЛЮЧИТЬ !

devote 06.06.2012 21:33

Цитата:

Сообщение от jsVAN
чтобы узнать js надо его ВЫКЛЮЧИТЬ !

но это лишь ради того что бы от редиректа избавится. Хотя можно заюзать любой снифер, и все это дело выудить.

jsVAN 06.06.2012 21:45

От отключенного js уже в общем то придумал пару вариантов, только время и желание надо чтобы записать по новому. Главное известно что искоренять надо.

А вот то чего боялся, снифер - зверь! А какой free можно задействовать в данном случае ?

Gvozd 06.06.2012 23:46

Цитата:

Сообщение от jsVAN
А вот то чего боялся, снифер - зверь! А какой free можно задействовать в данном случае ?

Fiddler, например.
И скажите пожалуйста: я вам в личку разве о нем не говорил?

jsVAN 07.06.2012 00:27

Наверно это именно то что мне нужно. Gvozd спасибо!

VANjs 24.02.2013 17:00

Новая версия, новый адрес:

webauction.biz/secret/demo.s

Копируете здесь этот адрес ( Ctrl+c ) и открыв нормальный (с html5) браузер пишете его в адресной строке (Ctrl+v). И там ссылка "Go" для просмотра картинки, и вот это фото, что открывается в браузере через несколько секунд, и предлагается сохранить себе на диск всеми возможными способами.

Мышкой двигать по экрану в начале не требуется, пока не увидите что именно дает такое движение.

danik.js 24.02.2013 18:34

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 ...

VANjs 24.02.2013 19:01

danik.js, спасибо за ответ!

VANjs 24.02.2013 23:05

https://www.free-lance.ru/projects/1...-yandeksu.html

danik.js 24.02.2013 23:13

Чел жжет ))
VANjs, а как это относится к теме? Если я не ошибаюсь - для предотвращения таких казусов создан сервис яндекс - антиплагиат.

VANjs 25.02.2013 01:53

яндекс да..., но плагиат живой и поныне,
и там вроде как бороться намерены, а может они и серьезны,
а может они и отвественны, к тому же может и вполне логичны, а плагиат все живет, и ссылка всего лишь конкретная реалия.
А вот к антиплагиату присоединиться влом? имею в виду не только взлом :))
за что спасибо - сам же об этом прошу, разломайте пожалуйста, так что правда благодарен всем участникам форума, откликнувшимся в этой теме,
но присоединиться в части создания этого самого антиплагиата.
danik.js, вот и подсказали бы VANjs как проходил Ваш последний сеанс раскодировки, т.к. без знания этого момента невозможно продвижение вперед.

danik.js 25.02.2013 05:28

Если честно, то я не успел "честно" вытащить скрипт. Для начала отключил JS в браузере. При переходе по ссылке получаем скриптик, который нужно немного изучить. В общем я его не успел доковырять как в какой-то момент просто остановил загрузку страницы и вытянул скрипт через sessionStorage.getItem('a'). А так да, с начала был удивлен, пытаясь обнаружить какие-то зацепки )

VANjs 25.02.2013 13:44

Грабли!
Опять я наступил :(( опять отключение js.
Привык что js то у меня не отключен никогда, да и вся схема то построена на работающем скрипте. Ну да ничего, можно что нибудь придумать и для этого случая, зная то как Вы к ему прошли. Спасибо danik.js !

И уж совсем весело было бы, ну не самому же опять изобретать велосипед, если бы гденить почитать про криптоалгоритм примерно такой: в доступном для чтения js виден весь код расшифрования, ключи случайные числа, получаемые в этом же скрипте, при этом текст, приходящий с сервера раскодируется этими же ключами. Может не совсем понятно изложил, но что то в этом роде.


Часовой пояс GMT +3, время: 12:02.