Как запретить скачивать файл из исходного кода?

Samail
На сайте с 10.05.2007
Offline
361
1455

.htaccess


# NEVER CACHE
<FilesMatch "\.(js|css)$">
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
</FilesMatch>

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?сайт.ru [NC]
RewriteRule \.(js|css)$ — [NC,F,L]

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

ДП
На сайте с 23.11.2009
Offline
203
#1

В общем случае - никак. Если он загружается в принципе в каком-то случае браузером - то пользователь может его сохранить. Даже просто открыть вкладку network в developer tools во время открытия сайта - там все ваши js/css будут как на ладони.

Максимум что можно сделать - это какие-нибудь одноразовые токены на скачивание файла, но скорее всего вам этот гемор не нужен. Что у вас там такого ценного в js/css?

Samail
На сайте с 10.05.2007
Offline
361
#2

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

Добавил


if (document.domain !== mydomen)
window.close();

и обфускацию. Надеюсь от таких спасёт.

ДП
На сайте с 23.11.2009
Offline
203
#3

Это наверно более верное и легкое решение в данном случае.

D.iK.iJ
На сайте с 26.05.2013
Offline
224
#4

Лучше бы добавили при этом переадресацию на СВОЙ сайт. window.close(); сейчас так просто может окно и не закрыть.

Адаптивный дизайн в 2 строчки ( https://dikij.com/wm/adaptaciya-saytov.php ). + Принимаю заказы любой сложности ( https://searchengines.guru/ru/forum/926323 ). 💎 Еще я делаю классные кулоны с опалами ( https://mosaicopal.ru/ ).
Samail
На сайте с 10.05.2007
Offline
361
#5
DiKiJ:
window.close(); сейчас так просто может окно и не закрыть.

Да я уже понял когда проверял. Переделал на


if (document.domain == mydomen)
{
скрипт
}

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

L
На сайте с 10.02.2015
Offline
221
#6

А что хоть за тематика, что так воруют? :)

Samail
На сайте с 10.05.2007
Offline
361
#7

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

ДП
На сайте с 23.11.2009
Offline
203
#8

Я не знаю, конечно, что у вас там за обфускатор, но я бы название домена тоже в чистом виде из скрипта убрал - или через fromCharCode или как-нибудь еще помудренее записал.

Samail
На сайте с 10.05.2007
Offline
361
#9

Там так:


mydomen = ""+""+""+"d"+""+""+""+"o"+""+""+""+"m"+""+"e"+""+""+"n"+""+"."+"r"+""+""+""+""+""+""+""+""+"u"+"";

А обфускатор превратил буквы в цифры, ну и переменная не mydomen, а набор букв от фонаря. Это я тут так написал что-бы понятнее было

B
На сайте с 23.05.2001
Offline
195
#10

Samail, можете попробовать более тонкий, но коварный способ - не просто закрывать, а где-нибудь внутри скрипта немного (чтобы не всегда заметно было) менять алгоритм в зависимости от домена.

Сразу не заметят, значит, не полезут разбираться что там не так.

Результат - ворованный калькулятор у конкурентов работает не всегда правильно, а в справочнике встречаются ошибки :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий