Форум русской поддержки Joomla!® CMS
08.12.2016, 20:12:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2 3  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Плагин сканирования файлов сайта по хеш-сумме и отправки отчета на email

 (Прочитано 2244 раз)
0 Пользователей и 1 Гость смотрят эту тему.
jlend
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 34


« : 30.01.2016, 22:42:55 »

Плагин SkanDir сканирования файлов сайта по хеш-сумме и отправки отчета на email.
Многие но не все используют скрипты для сканирования файлов сайта по хеш-сумме и мы решили написать плагин начиная с версии 3.4.* который будет в публичном доступе и распространятся бесплатно.

Бета версия, нужна помощь в тестировании и пожеланиях для доработки.

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

Скрипт взят с просторов интернета и обернут в плагин, в настройках указывается email для получения отчета, название файла по умолчанию стоит .scan_dir обязательно сменить на свое для записи хеш-сумм файлов, время для нагруженных сайтов или для шарада хостов устанавливается промежуток сканирования от время изменения файла, два варианта записи в файл хеш-сумм. Также для тестирования можно включить логи которые записываются в папку сайта /logs/, в настройках также нету ограничений по директориям, имени и расширению файлов (сейчас не выводится пока будет проводится тестирование).
Комментарии в коде уже имеются и будут дописываться в процессе тестирования и доработки.

Что интересует в тестировании так это:

- нагрузка на высоко посещаемых проектах
- нагрузка на сайтах с большим объемом файлов без исключений
- пожелания по функционалу, которые возможно не учли (хотя вроде все что требуется есть)

Не рекомендуется установка плагин на слабые хостинги с оперативной памятью ниже 256Мб.
Установка возможна только при настройки исключения из сканирования папок и файлов, что не даст должных результатов при сканировании.


Версию решили выложить у себя для скачивания что бы проще было её менять.

Скачать:
SkanDir (версия 1.0.1)

Исправлена ошибка записи хэш-суммы файлов

SkanDir (версия 1.0.2)

Вынесена запись файла хеш-сумм в каталог на уровень выше
Уменьшен размер записи файла хеш-сумм

SkanDir (версия 1.0.3)

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

НЕТ - Если у вас хостинг позволяет запись выше корня сайта и вы не настраивали ограничений на запись в папки.
ДА - Если вы не знаете о чем речь, то можете только проверив установкой и просмотром записан ли файл в каталог на уровень выше корня сайта.

Настройки плагина Описание по настройкам с изображениями.

Выложено на гитхаб

Авторы плагина:
jlend
Филипп Сорокин

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

Спасибо всем участникам сообщества, кто откликнулся и помог высказав свое видение и в доработке.


Еще расширения:
Плагин перезвоним
« Последнее редактирование: 27.03.2016, 23:28:52 от jlend » Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3537


« Ответ #1 : 30.01.2016, 22:52:36 »

Коллеги, давайте дружно поможем протестируем нужное и хорошее расширение.
Записан
effrit
Группа развития
*****

Репутация: +732/-7
Offline Offline

Пол: Мужской
Сообщений: 6815


effrit.com


« Ответ #2 : 30.01.2016, 23:05:48 »

коллеги с подозрением относятся к плагинам, распространяемым незнамо кем Azn
товарищ ТС, вы бы о себе чего-нить написали на своем же сайте, который, кстати, закрыт для посетителей.
тестирование подразумевает рабочую площадку с реальной нагрузкой, и как-то не очень хочется загружать туда анонимные всякие плагины.
Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3537


« Ответ #3 : 30.01.2016, 23:16:38 »

коллеги с подозрением относятся к плагинам, распространяемым незнамо кем Azn
товарищ ТС, вы бы о себе чего-нить написали на своем же сайте, который, кстати, закрыт для посетителей.
тестирование подразумевает рабочую площадку с реальной нагрузкой, и как-то не очень хочется загружать туда анонимные всякие плагины.
Можно за них скажу.
Это наша молодежь, со временем о них все узнают.
 Wink
Записан
jlend
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #4 : 30.01.2016, 23:48:44 »

Можно за них скажу.
Это наша молодежь, со временем о них все узнают.
 Wink
Спасибо, за поддержку.

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

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

Мы не на все 100% разработчики по Joomla, работаем и с ней и с другими CMS, из-за этого и создали топик. Нужно мнение и оно любое для нас ценно.
« Последнее редактирование: 30.01.2016, 23:54:46 от jlend » Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +121/-4
Offline Offline

Пол: Мужской
Сообщений: 1464


« Ответ #5 : 31.01.2016, 00:00:06 »

Коллеги, давайте дружно поможем протестируем нужное и хорошее расширение.

+
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +121/-4
Offline Offline

Пол: Мужской
Сообщений: 1464


« Ответ #6 : 31.01.2016, 00:01:55 »

В гитхаб бы опубликовали!
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +121/-4
Offline Offline

Пол: Мужской
Сообщений: 1464


« Ответ #7 : 31.01.2016, 00:08:36 »

Пока навскидку: тяжело читать. Код бы причесать не мешало, если призываете других к контрибьюторству. О стандартах кодинга на J! можете почитать здесь: http://joomla.github.io/coding-standards/

И вопрос такой: зачем подключать библиотеку плагинов в системном плагине?
Код:
jimport('joomla.plugin.plugin');

Записан
jlend
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #8 : 31.01.2016, 00:37:55 »

Спасибо учтем ваше мнение на счет гитхаба. Код согласен надо причесывать это на коленке выполнял за пару часов накидал.
И вопрос такой: зачем подключать библиотеку плагинов в системном плагине?
Код:
jimport('joomla.plugin.plugin');
Это бетка для тестирования код остался от другого плагина еще не чистился мусор в коде.
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3591


« Ответ #9 : 31.01.2016, 00:39:48 »

Присоединяюсь к Филипп Сорокин.
Есть вопросы:
1. Здесь вы сократили $olddata на 1 элемент, с ним что, не нужно сравнивать?
Код
if(count($olddata)>0) $oldsettings=array_shift($olddata);
2. Не нравится мне такой стиль:
Код
if(blahblahblah){
}else{
что-то_делаем;
}
 
3. "excluded" откуда взялась?
Код
stripos($filedata["checkhash"],"excluded")
4. Зачем засунули функцию slog() внутри onAfterRender()?
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +121/-4
Offline Offline

Пол: Мужской
Сообщений: 1464


« Ответ #10 : 31.01.2016, 00:41:15 »

Хорошо Azn
« Последнее редактирование: 09.02.2016, 15:26:50 от Филипп Сорокин » Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3591


« Ответ #11 : 31.01.2016, 00:47:25 »

соавторов/контрибьюторов включить в авторский лист
Куда вы претесь? Плагинчик-то всего один Azn.
Записан
jlend
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #12 : 31.01.2016, 00:55:55 »

Я думал вы призывали к контрибьюторству, чтобы соавторов/контрибьюторов включить в авторский лист.
Конечно к этому и призываем, всех будут прописаны, если неправильно выразился или не так меня поняли то прошу прощения. Лично у меня мало опыта с Joomla из-за этого топик и создан, нужна любая помощь.
Помощь вам нужна, значит, "талантливая молодёжь"? Ахахах! Сами раскручивайте Ваш JLend — у меня собственное "предприятие" есть.
На счет раскрутки вы взря так, у меня нету ни какого даже намека на раскрутку чего либо.

Готовый плагин будет выложен в публичный доступ после полной доработки и если это возможно то думаю его выложить тут прикрепленным к топику и если не откажутся админы на joomlaportal.ru и на любых других ресурсах рф и снг.
На счет JED не загадываю.

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

Еще раз прошу прощения, за недопонимание и если неправильно выразил свои мысли.
« Последнее редактирование: 31.01.2016, 01:32:16 от jlend » Записан
wishlight
Профи
********

Репутация: +200/-1
Online Online

Пол: Мужской
Сообщений: 3490


skype aqaus.com


« Ответ #13 : 31.01.2016, 00:58:34 »

http://extensions.joomla.org/extension/eyesite чем плагин лучше?
Записан
jlend
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #14 : 31.01.2016, 01:08:27 »

Это совершенно разные расширения plg_scandir не равно com_eyesite
Записан
wishlight
Профи
********

Репутация: +200/-1
Online Online

Пол: Мужской
Сообщений: 3490


skype aqaus.com


« Ответ #15 : 31.01.2016, 01:09:18 »

И чем они отличаются?
Записан
jlend
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #16 : 31.01.2016, 01:18:42 »

4. Зачем засунули функцию slog() внутри onAfterRender()?
slog() полностью только для тестирования написана, потом не будет
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +121/-4
Offline Offline

Пол: Мужской
Сообщений: 1464


« Ответ #17 : 31.01.2016, 01:45:00 »

Ещё из того, что увидел на поверхности:

Цитировать
// Проверяем, какой режим назначил пользователь для сравнения, если режим не выбран то используем режим по умолчанию.
if(isset($_REQUEST['mode']) && in_array($_REQUEST['mode'], $availableModes)){
    $mode = $_REQUEST['mode'];
}

Не используйте глобальные массивы. Вместо этого используйте встроенный объект фреймворка JInput
Код:
$jinput = JFactory::getApplication()->input;

Почитать можно здесь: https://docs.joomla.org/Retrieving_request_data_using_JInput
Записан
Фей
Завсегдатай
*****

Репутация: +86/-3
Offline Offline

Пол: Мужской
Сообщений: 724


skype: bel_ko_d


« Ответ #18 : 31.01.2016, 03:00:53 »

Знаете, что я скажу!? При нагруженном сайте ваш скрипт будет в лучшем случае подвешивать его, в худшем сайт будет падать в ошибку нехватки памяти.
Не все юзают виртуальные/выделенные сервера, да  и там тоже имеются ограничения.
Радует данный массив:
Код:
$entry=array(
"namehash" => $line[0],
"checkhash" => $line[1],
"date" => $line[2],
"size" => $line[3],
"name" => $line[4],
"ext" => $line[5],
);

$olddata[$line[0]]=$entry;

Ладно, если скан только по php файлам и то их в Joomla дофига.

Далее, плагин это хорошо, но бессмысленно.
Записан
Фей
Завсегдатай
*****

Репутация: +86/-3
Offline Offline

Пол: Мужской
Сообщений: 724


skype: bel_ko_d


« Ответ #19 : 31.01.2016, 03:22:12 »

Мое мнение, вообще идеологически не верный подход к методам сканирования.
Записан
draff
Практически профи
*******

Репутация: +161/-5
Offline Offline

Пол: Мужской
Сообщений: 2658


step by step


« Ответ #20 : 31.01.2016, 11:05:36 »

Исключение папки /cache я понимаю.Но именно папка кеш любимое место для вирус/шелл .
Советую в реадми отметить эту особенность .
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2287



« Ответ #21 : 31.01.2016, 12:18:01 »

Было много похожих скриптов, создавались сервисы, наподобие Санти, создавались всевозможные дополнения, но кто оценил их эффективность?

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

В одной из моих тем (наверное, многие помнят), тов. voland заставил задуматься как раз над этим вопросом. Для сравнения приведу пример с квартирой. На сколько вы способны защитить квартиру и находящееся в ней имущество от проникновения и кражи? Вы поставили дверь с замком и сделали инвентаризационную опись имущества, которую повесили на стене рядом с дверью. Сосед просек это дело и, подобрав ключи от двери, пришел и, вынеся из квартиры часть вещей, заменил опись на свою. Вы возвращаетесь, дверь на месте, опись на месте, вещи по описи все на месте...

Имхо.
Записан
Фей
Завсегдатай
*****

Репутация: +86/-3
Offline Offline

Пол: Мужской
Сообщений: 724


skype: bel_ko_d


« Ответ #22 : 31.01.2016, 12:32:22 »

Это совершенно разные расширения plg_scandir не равно com_eyesite

Ни чем не разные, функционал идентичен. Разница в хранимом месте. Только там компонент, в котором можно увидеть всю информацию. Ну и плагин есть, правда платный. Но если продукт хороший, то можно и потратить 500 руб на его приобретение.
Записан
Фей
Завсегдатай
*****

Репутация: +86/-3
Offline Offline

Пол: Мужской
Сообщений: 724


skype: bel_ko_d


« Ответ #23 : 31.01.2016, 12:35:05 »

Данный плагин должен быть выполнен в виде демона и не на PHP написан. В этом случае имеется возможность, что его не засекут и не отключат.
Записан
PaLyCH
Живу я здесь
******

Репутация: +146/-19
Offline Offline

Пол: Мужской
Сообщений: 974


Архитектор сайтов


« Ответ #24 : 31.01.2016, 14:01:04 »

Я использую вот такое решение santivi.com
Посмотрите, может найдете свежии идеи.
Код там открытый
Записан
Фей
Завсегдатай
*****

Репутация: +86/-3
Offline Offline

Пол: Мужской
Сообщений: 724


skype: bel_ko_d


« Ответ #25 : 31.01.2016, 15:39:31 »

да тут идея больше уведомить владельца, об изменениях в файлах/каталогах, а не сканирвоание на вирусы
Записан
PaLyCH
Живу я здесь
******

Репутация: +146/-19
Offline Offline

Пол: Мужской
Сообщений: 974


Архитектор сайтов


« Ответ #26 : 31.01.2016, 15:44:49 »

да тут идея больше уведомить владельца, об изменениях в файлах/каталогах, а не сканирвоание на вирусы
Санти именно так и работает: уведомляет об изменениях в файлах
Записан
kik84
Живу я здесь
******

Репутация: +59/-4
Offline Offline

Сообщений: 1307



« Ответ #27 : 04.02.2016, 23:09:13 »

Поставил пока на два сайта. Достойная замена используемого мною пхп-скрипта, который по Cron проверяет изменения файлов на сервере с отсылкой отчета.
Отличное дополнение к безопасности вместе с RSFirewall. Из пожеланий: добавить в опции возможность указать файлы и папки, которые можно исключить из проверки.
Записан
jlend
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #28 : 05.02.2016, 12:42:29 »

Поставил пока на два сайта. Достойная замена используемого мною пхп-скрипта, который по Cron проверяет изменения файлов на сервере с отсылкой отчета.
Отличное дополнение к безопасности вместе с RSFirewall. Из пожеланий: добавить в опции возможность указать файлы и папки, которые можно исключить из проверки.
Будет включено в процессе доработки исключения файлов и папок они уже есть и тестирую, в админ панели уже есть поля для ввода файлов и папок.
Сейчас уже включил выставление времени сканирования, выставляется в минутах по умолчанию при установке время стоит сутки 1440 минут его каждый может изменить на свое желаемое в настройках плагина.
В настройках также сделан выбор сканирования и записи либо по атрибутам файла либо по его контенту.

Выложил на гитхаб
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +121/-4
Offline Offline

Пол: Мужской
Сообщений: 1464


« Ответ #29 : 09.02.2016, 15:30:14 »

Алексей, чтобы не было путаницы в пулл-реквестах, вы как-нибудь дайте знать, что проанализировали текущие пулл-реквесты и можно делать следующие. Просто, не хотелось бы вас загружать. Можно обсуждать вопросы на гитхабе в комментариях или прямо в этой теме.
Записан
Страниц: [1] 2 3  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet