Javascript.RU

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

Проверка файла, или его части на целостность (защита контента)
Добрый день.
Сделал небольшое веб-приложение, состоящее из допустим 5-ти файлов:

main.html (файл запуска )
- main.css (стили)
- main.js (код приложения)
- main2.js (еще код приложения)
- main.dat (данные приложения)

В принципе я МОГУ преобразовать эти 5-ть файлов в один работающий all.html (размером 2.5 Мб), если это будет необходимо.

Вопрос в чём:
Как максимально усложнить задачу его изменения и декомпиляции?

Поясню. Компания №1 делает полезное веб-приложение со своими данными (контакт ,логотип, и т.д.).
Компания №2 недолго думая скачивает все файлы, заменяет лого, контакты и т.д. Профит.

Про обфускацию знаю, но не сильно она меня останавливает ("ООО Ромашка" не сильно обфусцируешь то). Возникла идея как-то считать хеш\контрольную сумму\целостность\ и т.д. данных (либо main.dat, либо единственного html файла, к которому я могу всё свести).
Если данные не совпадают с контрольными - сюрприз.

Да, да, проверку можно вырезать, но при обфускации это уже сложнее.

Я не то что бы параноик ,просто интересно, есть ли какие-нибудь методики защиты веб-приложений?
Ответить с цитированием
  #2 (permalink)  
Старый 07.11.2016, 10:52
Интересующийся
Отправить личное сообщение для Vadya Посмотреть профиль Найти все сообщения от Vadya
 
Регистрация: 15.04.2010
Сообщений: 24

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

"Если данные не совпадают с контрольными - сюрприз."
Одна из моих фишек: при заходе на main.html ставится одноразовый ключ, который разрешает открыть один раз main.css. main.css обрабатываем как пхп. При попытке неестественного запроса, отдаем незначительно другой, с косяками. Все должно быть максимально нечитаемым. В main.css логируем неестественные запросы и анализируем.

PS насколько это эффективно применительно к css не знаю

Последний раз редактировалось Vadya, 07.11.2016 в 10:55.
Ответить с цитированием
  #3 (permalink)  
Старый 07.11.2016, 11:57
Интересующийся
Отправить личное сообщение для ice99 Посмотреть профиль Найти все сообщения от ice99
 
Регистрация: 19.06.2011
Сообщений: 20

Сообщение от Vadya Посмотреть сообщение
PS насколько это эффективно применительно к css не знаю
Да css пусть берут. Основные моменты это main.js и main.dat

Всё -таки интересна идея сделать что-нибудь с единым "all.html", например создать ему в помощь main.php, без которого all.html не запускался бы.
Либо я пытаюсь изобрести вечный двигатель?
Ответить с цитированием
  #4 (permalink)  
Старый 07.11.2016, 12:36
Интересующийся
Отправить личное сообщение для Vadya Посмотреть профиль Найти все сообщения от Vadya
 
Регистрация: 15.04.2010
Сообщений: 24

Сообщение от ice99
например создать ему в помощь main.php, без которого all.html не запускался бы
ну разницы то между этими файлами нет. Другое дело определить критерии, по которым будет или не будет запускаться, но это невозможно.

Про css я просто пример привел, тоже самое можно проделывать с любыми файлами. Зависит от поведения браузеров, надо проверять. Когда лет 5 назад прятал так некоторые файлы, их можно было вытащить только из кэша оперы. Но перед этим надо было догадаться, что скачанный файл не совсем тот
Ответить с цитированием
  #5 (permalink)  
Старый 07.11.2016, 12:46
Интересующийся
Отправить личное сообщение для Vadya Посмотреть профиль Найти все сообщения от Vadya
 
Регистрация: 15.04.2010
Сообщений: 24

Попробую проще написать: если пользователь произвел определенные правильные действия, то ему отдается один файл, если нет или открыл файл напрямую, то по тому же урлу похожий с косяками

как то так:

.htaccess:
AddType application/x-httpd-php .xxx
------
main.xxx:
if(условие совпадает) {
$file = '1.xxx';
} else {
$file = '2.xxx';
}
header('Content-type: application/.....xxx......;');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Content-Length: '.filesize($file));
ob_clean();
flush();
readfile($file);
exit;


если нгикс, не забыть пропускать запрос на апач

Последний раз редактировалось Vadya, 07.11.2016 в 13:20.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита от ботов или проверка на человечность?) KupueIIIKo Оффтопик 22 14.09.2015 12:32
Проверка textarea на заполнение из файла espltd Элементы интерфейса 10 30.06.2015 15:48
Проверка файла. Узнать существует он или нет. Node js vlzkonopatov AJAX и COMET 8 28.11.2014 19:28
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25