Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Защита от копирования .. (https://javascript.ru/forum/dom-window/56726-zashhita-ot-kopirovaniya.html)

Georka 01.07.2015 12:31

Защита от копирования ..
 
Ребят. Подскажите как мне вписать в (основной) исполняющий скрипт JS, проверку адреса сайта? И вывод сообщения если ссылка не соответствует указанной?

Нужно чтобы если кто-то рипнет сайт, чтобы у него выскакивало окно с сообщением, что сайт защищен !

А при удалении скрипта , он лишался основных функций или стилей..

но желательно стилей..

рони 01.07.2015 12:44

Georka,
то есть вы предполагаите что тот, кто возьмёт ваш скрипт, не сможет убрать проверку на адрес сайта? вам много раз сказали что бесполезно, нельзя, почему вы так упорно возвращаитесь к этой теме?

Georka 01.07.2015 12:54

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

Georka 01.07.2015 12:55

Рони, очень нужно.. плиз )

рони 01.07.2015 13:02

Georka,
window.location изучить что это такое и сделать нужный вам код

Safort 01.07.2015 13:46

Чувак, просто пойми одно: твой код никому не нужен. Раз ты с завидной частотой задаёшь вопросы такого характера, то уж точно не сможешь написать чего-то гениального. Лучше потрать силы на изучение чего-то нового, а не страдай ерундой.

Georka 01.07.2015 14:01

Ок. А как мне просто сделать проверку адреса сайта. И в случае не совпадения, Вывести сообщение на экран?

kostyanet 03.07.2015 16:43

Самое смешное что как правило сильно заботятся о сохранении "копирайта" те, кто практически все стырил для своего сайта. То есть они знают что стырить легко, но верят что есть какие-то чудесные способы не дать стырить.

Нет таких способов.

Deff 03.07.2015 19:23

Цитата:

Сообщение от kostyanet
Нет таких способов.

Возможно всё, вопрос в трудозатратах как кодинга, так и декодинга...
Очевидно есть критическая точка, когда затраты на декодинг превышают затраты на создания собственного диза с нуля по образцу(если уж оч понравилось)

Safort 03.07.2015 21:45

Deff,
а когда wasm релизнут, так ещё проще будет)

alextwin 20.10.2015 21:20

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

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

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

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

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

MallSerg 20.10.2015 22:12

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

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

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

alextwin 22.10.2015 00:52

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

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

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

MallSerg 25.10.2015 13:26

Ну если бы ты хоть немного знал бы 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.

Sigizmund2012 25.10.2015 18:45

MallSerg,
Он просто пиарит свой сраный обфускатор, посты его посмотри.

viktorina 26.10.2015 13:06

Задача интересная.
Нужно сделать несколько проверок в нескольких местах.
Нужно устанавливать класс для body и нескольких других каркасообразующих элементов. Устанавливать его через js, чтобы в случае удаления ваших скриптов ломался и сайт.
Весь js нужно шифровать, компрессировать.
Заморачиваться не стоит над мелочами и "суперзащитой".
Вероятность того, что сайт скопируют очень мала.
Вероятность того, что сайт скопируют и будут возиться с выпиливанием ваших защит ещё меньше.

alextwin 26.10.2015 13:41

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

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


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

krasovsky 26.10.2015 13:43

Цитата:

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

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

alextwin 26.10.2015 13:50

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


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