Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 20.10.2015, 21:20
Новичок на форуме
Отправить личное сообщение для alextwin Посмотреть профиль Найти все сообщения от alextwin
 
Регистрация: 21.08.2015
Сообщений: 8

Georka, грамотный алгоритм защиты здесь такой:
1. берем имя домена того сайта, к которому нужно привязать js скрипт и вычисляем от этой строки какую-нибудь хэш функцию, запоминаем
2. в защищаемом скрипте читаем через window.location текущий домен и считаем ту же хэш функцию от полученного имени домена
3. сравниваем результаты 1 и 2, если не совпадают, значит скрипт скопировали и залили на другой сайт - показываем сообщение пользователю или делаем редирект на страницу с сообщением "скрипт скопирован с supersitename, это плохо и ай-я-яй".
4. защитить текст скрипта каким-нибудь криптором, а лучше криптором-обфускатором

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

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

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

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

Последний раз редактировалось alextwin, 20.10.2015 в 21:48.
Ответить с цитированием
  #12 (permalink)  
Старый 20.10.2015, 22:12
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

Просто гениальная защита так много продуманных действий xD.

Да как не исправляй свое сообщение все равно это глупость ).

+function (){
	var window = {location:"KakoyUgodnoDomen.com"};
	alert (window.location)
}();

Последний раз редактировалось MallSerg, 20.10.2015 в 22:57.
Ответить с цитированием
  #13 (permalink)  
Старый 22.10.2015, 00:52
Новичок на форуме
Отправить личное сообщение для alextwin Посмотреть профиль Найти все сообщения от alextwin
 
Регистрация: 21.08.2015
Сообщений: 8

MallSerg, если хочеться съехидничать, то желательно сначала подумать, а то можно самому попасть в глупое положение .)

Допустим переопределил ты window столь незамысловатым образом и что? В реальном скрипте код ниже 2-й строчки даст ошибку при первом обращении к свойству или методу window кроме location.
function (){
    var window = {location:"KakoyUgodnoDomen.com"};
    var x=window.open();   //будет ошибка
    var d=window.document.write("и здесь ошибка тоже");
    alert(window.location)
}();

А учитывая, что, как я писал выше, сам скрипт защищается правильным криптором-обфускатором, там таких обращений будет очень много.
В итоге скрипт на другом домене все равно не заработает, что и требуется.
Ответить с цитированием
  #14 (permalink)  
Старый 25.10.2015, 13:26
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

Ну если бы ты хоть немного знал бы JS то понимал бы что вся твоя защита обходится парой строк и не вызывает трудностей даже для начинающих кодеров =)

<script>var glob = window;
+function f (){
    var window = {location:"KakoyUgodnoDomen.com",__proto__:glob};
    //var x=window.open();   //будет ошибка
    var d=window.document.write("и здесь ошибка тоже");
    alert (window.location);
}();</script>


И, да. Я хочу съехидничать xD.

Последний раз редактировалось MallSerg, 25.10.2015 в 13:34.
Ответить с цитированием
  #15 (permalink)  
Старый 25.10.2015, 18:45
Аватар для Sigizmund2012
Профессор
Отправить личное сообщение для Sigizmund2012 Посмотреть профиль Найти все сообщения от Sigizmund2012
 
Регистрация: 16.07.2014
Сообщений: 267

MallSerg,
Он просто пиарит свой сраный обфускатор, посты его посмотри.
Ответить с цитированием
  #16 (permalink)  
Старый 26.10.2015, 13:06
Аватар для viktorina
Профессор
Отправить личное сообщение для viktorina Посмотреть профиль Найти все сообщения от viktorina
 
Регистрация: 04.01.2013
Сообщений: 173

Задача интересная.
Нужно сделать несколько проверок в нескольких местах.
Нужно устанавливать класс для body и нескольких других каркасообразующих элементов. Устанавливать его через js, чтобы в случае удаления ваших скриптов ломался и сайт.
Весь js нужно шифровать, компрессировать.
Заморачиваться не стоит над мелочами и "суперзащитой".
Вероятность того, что сайт скопируют очень мала.
Вероятность того, что сайт скопируют и будут возиться с выпиливанием ваших защит ещё меньше.
Ответить с цитированием
  #17 (permalink)  
Старый 26.10.2015, 13:41
Новичок на форуме
Отправить личное сообщение для alextwin Посмотреть профиль Найти все сообщения от alextwin
 
Регистрация: 21.08.2015
Сообщений: 8

О виликий гуру MallSerg, наконец ты (со второй попытки) написал пример сферического "взлома защиты", который не рушит весь нижележайший код )
Но хочу заметить, что добавление одного маленького слова "this." перед window тут же лишает все твои движения мысли по "взлому" ожидаемого тобой эффекта.

<script>
var glob = window;
(function f(){
    var window = {location:"KakoyUgodnoDomen.com",__proto__:glob};
    //
    alert(this.window.location);
    //
})();
</script>


Эй, юноша Sigizmund2012, побольше уважения в голосе. Ты пока принес в этот топик полезных идей в колличестве ровно ноль, в отличии от MallSerg, который хоть и в своеобразной форме, но пытается дать конструктивную критику концепции защиты о которой спрашивал ТС.
Ответить с цитированием
  #18 (permalink)  
Старый 26.10.2015, 13:43
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Сообщение от рони
то есть вы предполагаите что тот, кто возьмёт ваш скрипт, не сможет убрать проверку на адрес сайта? вам много раз сказали что бесполезно, нельзя, почему вы так упорно возвращаитесь к этой теме?
Ну не то чтоб совсем совсем нельзя, некоторые меры все таки принять можно.
Как вариант отправлять не страницу а скрипт, который в последствии грузит страницу...или не грузит
Есть наверняка варианты и покрепче, хотя конечно на каждый лом найдется лом побольше
Ответить с цитированием
  #19 (permalink)  
Старый 26.10.2015, 13:50
Новичок на форуме
Отправить личное сообщение для alextwin Посмотреть профиль Найти все сообщения от alextwin
 
Регистрация: 21.08.2015
Сообщений: 8

viktorina, полностью согласен.
"Суперзащита" тут конечно невозможна, при должном уровне старания и времени взломать можно все. Цель не в этом. Цель сделать процесс снятия защит затратнее, чем написание нужного кода заново. Так что применение обфусцированного кода, в который убирается часть логики сайта из основных скриптов, тут самое разумное решение.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита javascript от модификации извне aerohotter Общие вопросы Javascript 15 28.05.2015 12:11
защита от копирования tyshka jQuery 3 19.10.2014 17:08
Возможна ли защита от копирования сайта таким образом... VictoriaV Общие вопросы Javascript 6 08.04.2012 23:22
защита от копирования, печати dao911 Javascript под браузер 7 08.11.2010 22:56
Защита контента на странице Freyaa Элементы интерфейса 11 09.10.2009 09:00