Georka, грамотный алгоритм защиты здесь такой:
1. берем имя домена того сайта, к которому нужно привязать js скрипт и вычисляем от этой строки какую-нибудь хэш функцию, запоминаем 2. в защищаемом скрипте читаем через window.location текущий домен и считаем ту же хэш функцию от полученного имени домена 3. сравниваем результаты 1 и 2, если не совпадают, значит скрипт скопировали и залили на другой сайт - показываем сообщение пользователю или делаем редирект на страницу с сообщением "скрипт скопирован с supersitename, это плохо и ай-я-яй". 4. защитить текст скрипта каким-нибудь криптором, а лучше криптором-обфускатором Поясню, зачем нужно такое усложнение с хэш-функцией: если просто вписать в тексте скрипта имя вашего домена, то нужную строку в тексте просто найдут и отредактируют. Если скрипт защитить криптором, то сделать это будет заметно сложнее, но найдя один раз, дальше будут легко править под любой домен. А вот если в тексте скрипта есть только значение хэша от имени домена да еще и сам текст закрыт обфускатором, то тут уже придется для смены привязанного к скрипту домена снимать всю защиту, искать где-там и как реализована проверка, переписывать/править и только потом скрипт можно будет использовать где-то на другом сайте. В итоге задача взять чужой скрипт и использовать у себя усложняется до уровня, когда проще скрипт написать заново, что нам собственно и нужно. Если не хочется заниматься реализацией этой схемы самому, есть готовые платные решения, например вот. И более-менее нормальная защита и привязка к домену в одном флаконе. |
Просто гениальная защита так много продуманных действий xD.
Да как не исправляй свое сообщение все равно это глупость ). +function (){ var window = {location:"KakoyUgodnoDomen.com"}; alert (window.location) }(); |
MallSerg, если хочеться съехидничать, то желательно сначала подумать, а то можно самому попасть в глупое положение .)
Допустим переопределил ты window столь незамысловатым образом и что? В реальном скрипте код ниже 2-й строчки даст ошибку при первом обращении к свойству или методу window кроме location. function (){ var window = {location:"KakoyUgodnoDomen.com"}; var x=window.open(); //будет ошибка var d=window.document.write("и здесь ошибка тоже"); alert(window.location) }(); А учитывая, что, как я писал выше, сам скрипт защищается правильным криптором-обфускатором, там таких обращений будет очень много. В итоге скрипт на другом домене все равно не заработает, что и требуется. |
Ну если бы ты хоть немного знал бы 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,
Он просто пиарит свой сраный обфускатор, посты его посмотри. |
Задача интересная.
Нужно сделать несколько проверок в нескольких местах. Нужно устанавливать класс для body и нескольких других каркасообразующих элементов. Устанавливать его через js, чтобы в случае удаления ваших скриптов ломался и сайт. Весь js нужно шифровать, компрессировать. Заморачиваться не стоит над мелочами и "суперзащитой". Вероятность того, что сайт скопируют очень мала. Вероятность того, что сайт скопируют и будут возиться с выпиливанием ваших защит ещё меньше. |
О виликий гуру MallSerg, наконец ты (со второй попытки) написал пример сферического "взлома защиты", который не рушит весь нижележайший код )
Но хочу заметить, что добавление одного маленького слова "this." перед window тут же лишает все твои движения мысли по "взлому" ожидаемого тобой эффекта. <script> var glob = window; (function f(){ var window = {location:"KakoyUgodnoDomen.com",__proto__:glob}; // alert(this.window.location); // })(); </script> Эй, юноша Sigizmund2012, побольше уважения в голосе. Ты пока принес в этот топик полезных идей в колличестве ровно ноль, в отличии от MallSerg, который хоть и в своеобразной форме, но пытается дать конструктивную критику концепции защиты о которой спрашивал ТС. |
Цитата:
Как вариант отправлять не страницу а скрипт, который в последствии грузит страницу...или не грузит Есть наверняка варианты и покрепче, хотя конечно на каждый лом найдется лом побольше |
viktorina, полностью согласен.
"Суперзащита" тут конечно невозможна, при должном уровне старания и времени взломать можно все. Цель не в этом. Цель сделать процесс снятия защит затратнее, чем написание нужного кода заново. Так что применение обфусцированного кода, в который убирается часть логики сайта из основных скриптов, тут самое разумное решение. |
Часовой пояс GMT +3, время: 18:18. |