Как защитить файлы от скачивания в moodle

Обновлено: 06.07.2024

Рано или поздно перед джидаями Moodle встаёт актуальный вопрос защиты (всё того контента, который нажит непосильным трудом) от злобных ситхов. Например, вы через Moodle осуществляете коммерческую деятельность и ваш контент – ваше богатство. Или просто надо чтобы обучающиеся работали именно с Moodle, а не скачивали текстовый контент (версия для печати идёт отдельным пунктом курса дистанционного обучения).

Как же можно уберечься от действий ситхов? Тут можно пойти двумя путями – использовать специальный софт, предотвращающий выделение и копирование материалов сайта. Второй путь – использовать старые джидаевские заклинания. Есть гуманное джидаевское заклинание: в тег <BODY> вставляем, чтобы получилось

<body topmargin=5 leftmargin=5 rightmargin=5 bottommargin=5 oncopy="return false" onselectstart="return false" bgcolor=white text=black>

<body topmargin=5 leftmargin=5 rightmargin=5 bottommargin=5 oncopy="return false" bgcolor=white text=black>

В первом случаи будет блокироваться выделение и вызов контекстного меню правой кнопки мыши. И конечно, команда ctrl+c также не работает. Во втором случаи можно и выделить и вызвать контекстного меню и даже нажать на кнопку копирования. Но копирования в буфер обмена не произойдет. То есть представьте себе такую картину – злобный ситх выделяет, копирует материал с вашего Moodle, открывает word нажимает вставить и …… ничего не происходит. Первая мысль в моcку ситха – “Я сделал что-то не то”. Возвращается на сайт, повторяет свои действия и опять получает фигу. Пройдет какое-то время, прежде чем злыдень поймёт, что перед ним поглумились.

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

Вообще-то надо было начать свой пост с ритуальных слов: “100 % защиты от взлома не существует!” В частности, указанный выше способ защиты преодолевается любым форумным троллем 1 уровня – достаточно выбрать команду просмотра исходного HTML или сохранить веб-страницу на своём компе. Заклинания, описанные в посте, достаточно древние и потому известные.

НО. Система Moodle – динамическая. Это означает, что материал храниться не на веб-страницах, а в базе данных. Это даёт джидаям несомненное преимущество перед ситхами – если просмотреть исходный код страницы, то никаких записей (точнее тех, которые нужны) злыдень не обнаружит. Исключение из этого правила составляют SCORM-пакеты, которые создаются именно как веб-страницы (вот ещё для чего понадобиться плагин “Книга”! В этом плагине предусмотрен вариант импорта из html –страницы, названия страниц берётся из тега <title></title> ).

И нам понадобиться ещё одно старое джидаевское заклинание, предотвращающее печать HTML-страницы (ведь пользователь может просто распечатать страницу, где например, размещён тест):

Использование подобного способа может быть полезным и для защиты своего текста в системах Joomla, Drupal, WordPress, т.к. они также являются динамическими.

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

Для новичков: вопросы от тех, кто делает первые шаги в Moodle

DELETED

Николай, Да, спасибо. Там же вчера вычитала, исправила.. помогло:)

Мария Заостровных

Я зарегистрировалась сегодня утром, до сих пор нет письма на почту. Что делать? Как с администратором связаться?

Евгения Яковлева

Alex Djachenko

Alex Djachenko

Александр, есть платные курсы, как от официального партнера, так и от других организаций. Есть книги русскоязычных авторов.

Alex Djachenko

Мария, Moodle - это не один сайт, а инструмент. Его используют десятки-тысяч организаций. Чтобы найти администратора, Вам нужно обратиться в ту организацию, которой принадлежит тот сервер, на котором Вы регистрируетесь. Сюда писать бесполезно - здесь обсуждается именно инструмент, а не конкретный сайт.

Alex Djachenko

Andrey, в базовой версии нет подходящих инструментов, чтобы использовать результаты одного курса в другом курсе. Вы можете использовать дополнительный модуль subcourse из 3rd party или условие по наличию беджей из профессиональной версии.

Alex Djachenko

Евгения, проверьте настройки вашего сервера: какая папка указана в качестве временной в php.ini и есть ли у процесса веб-сервера к ней доступ, проверьте ограничения по размеру файлов и размеру post-запросов в настройках php, проверьте доступность папки moodledata и вложенных процессу веб-сервера.

Александр Ткаченко

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

Евгения Яковлева

Alex, извините, я некорректно сформулировала вопрос. Файл загружен в Moodle, но браузер Google не может его открыть онлайн pdf.

Alex Djachenko

Alex Djachenko

Евгения, online pdf-файлы открываются либо через встроенный в браузер просмоторщик, либо (если он включет) через встроенный просмотрщик на javascript. Ксожалению, альтернативные просмотрщики (не от Adobe) открывают корректно не все PDF-файлы, так что дело может быть не в Moodle. Поэкспериментируйте с файлом, посмотрите, в чем он открывается. Попробуйте его переконвертировать (через распечатку в PDF из просмотрщика, где он корректно открыт).

Евгения Яковлева

Alex, тут похоже дело в браузере Google, т.к. через Яндекс и Explorer открываются

Как правило, в распоряжении преподавателя, приступающего к наполнению электронного курса, имеются различные учебные и методические материалы в электронном виде, представленные в форме файлов различных форматов, чаще всего это электронные копии «бумажных» в формате Word или PDF, а также PowerPoint-презентации, иллюстративные аудио и видео материалы. Простейшим способом размещения такого рода материалов в курсе является загрузка их файлов в том виде, как они есть.

Для того чтобы загрузить и добавить в курс ресурс в виде файла, следует в режиме редактирования курса, нажать в соответствующем разделе страницы ссылку «+Добавить элемент или ресурс» и выбрать в списке добавляемых элементов тип ресурса – Файл (рис. 1).

Ресурс Файл

Рис. 1. Выбор для добавления ресурса Файл

Открывшееся окно «Добавление: Файл» (рис. 2), предназначено для выполнения операций по настройке параметров и загрузки файла.


Рис. 2. Окно добавления на страницу курса ресурса Файл

В поле «Название» следует ввести название ресурса, которое будет отображаться на странице курса.

В поле «Описание» вводится описание загружаемого ресурса. Также устанавливается в соответствующее состояние флажок «Отображать описание/вступление на странице курса».

Загрузка размещаемого файла может быть произведена путем простого перетаскивания файла из папки его размещения на компьютере пользователя в поле «Выберите файлы» раздела «Содержимое».

В секции «Внешний вид», представленной в развернутом виде на рис. 3, настраиваются параметры, влияющие на отображение ресурса.


Рис. 3. Настройки раздела «Внешний вид» окна загрузки файла

Параметр «Способ отображения» определяет способ отображения загружаемого файла на странице курса. Этот параметр может принимать следующие значения:

- «Автоматически» – подходящий режим отображения подбирается автоматически в зависимости от типа файла;

- «Внедрить» – файл отображается внутри страницы курса;

- «Принудительное скачивание» – пользователю предлагается скачать файл;

- «Открыть» – файл открывается в текущем окне браузера;

- «Во всплывающем окне» – файл открывается в отдельном всплывающем окне без меню и адресной строки.

Для полнотекстовых и презентационных учебных материалов мы рекомендуем использовать отображение «Во всплывающем окне». В этом случае сохраняется возможность параллельного доступа к другим элементам страницы курса без закрытия материалов, отображенных в этом окне.

Следующие настройки позволяют:

- установить – выводить или не выводить на странице курса размер файла и его тип;

- установить размеры окна в случае отображения файла во всплывающем окне;

- установить – выводить или не выводить описание ресурса;

- установить – применять или не применять фильтры, например фильтра автосвязывания глоссария, если применять, то ко всем файлам или только к html-файлам.

Вид развернутой секции «Общие настройки модуля» представлен на рис. 4.


Рис. 4. Раздел «Общие настройки модуля»

В секции «Общие настройки модуля» настраиваются следующие параметры.

- «Доступность» устанавливает показать или скрыть ресурс на странице курса. Заметим, что скрытием и показам ресурса можно управлять и не входя в режим настройки ресурса.

- «Идентификатор». Установка идентификатора элемента позволяет идентифицировать конкретный оцениваемый элемент курса в формулах при вычислении оценки. Файлы обычно не используются в качестве оцениваемых элементов курса, поэтому это поле оставляем пустым.

- «Поток». Поток – это набор групп в курсе. При использовании такого способа группирования студентов, при выборе потока в этом пункте можно разрешать или запрещать доступ к ресурсу в зависимости от принадлежности групп студентов выбранному потоку.

- «Доступно только для членов группы». Установка флажка в этом пункте делает данный ресурс доступным только студентам потока, выбранного в предыдущем пункте.

Настройки секций «Ограничить доступ» и «Выполнение элемента курса» будут подробно рассматриваться в следующих разделах, и на данном этапе освоения работы в электронном курсе следует оставить значения этих параметров установленные по умолчанию.

Как уже было сказано выше, элемент курса Файл позволяет размещать имеющиеся у преподавателя учебные материалы в том виде, «как они есть». Тем не менее, мы не рекомендуем размещать полнотекстовые учебные материалы в исходном формате Word-файлов. По крайней мере, имеет смысл преобразовать их в не редактируемый PDF-формат. Следует учитывать, что при использовании учебного ресурса в виде файла, для отображения его содержимого на экране компьютера студента этот файл должен быть целиком загружен на этот компьютер и, что также очень важно, на этом компьютере должно быть установлено программное обеспечение, необходимое для отображения файла данного типа, например Microsoft Office. Оба этих обстоятельства носят явно отрицательный характер, в особенности при использовании студентами мобильных устройств (планшетов, смартфонов).


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

1. Apache mod XSEND Files

Описание приводится на страничке документации, нужно это т.к. moodle выдает статические файлы, в соответствии с правами доступа к ним, динамически. Такого рода дополнения могут прилично увеличить производительность. Почитать подробнее про X-Sendfile можно в статье.

Включается эта опция в конфиге Apache2 - указываем каталог с moodle data

2. Использование php-fpm

Данная рекомендация подходит для всех более-менее значимых проектов под LAMP.

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

3. Изменение базовых значений php.ini

Здесь важным параметром является max_input_vars (должен быть увеличен). Система не сможет делать архивы для больших курсов и разворачивать их, так же сторонние модули с большим числом параметров не смогут правильно работать. Аналогично следует увеличить размеры лимитов для работы с файлами, например, МАХ размер загрузки файла на курс, максимального числа загружаемых файлов в систему одновременно.

В официальной документации moodle рекомендуется для продакшен использовать под Linux , а в ней меньше проблем с оптимизацией и кешированием у php. Настоятельно рекомендуется использовать модули по типу opcache в системе. Memcached нужно осторожно использовать (или отказаться вовсе) т.к. в системе могут происходить значительные изменения контента преподавателями и они не сразу могут отображаться корректно как для слушателей, так и для преподавателей.

5. Использование внутреннего почтовика

Для работы moodle необходимо настроить работу с почтовой системой. Часто из-за того что почтовый сервер внешний, то письма к нему могут приходить не сразу, просто теряться(из-за таймаутов). Так же скрипты которые выполняют рассылку могут подвесить систему. Решением такой проблемы может быть развертывание почтового сервера с пересылкой писем на внешний сервер.

Документации о работе почтового сервера в режиме пересылки(Relay) много официальной, например, для Postfix.

Простой пример настройки опции - файл transport

6. Mysql тюнинг

Может быть полезен, если для установки мудла использовался сервер MYSQL. Многие пишут что MYSQL из коробки идет с минимальными настройками, но информации по оптимизации БД много в сети. Могу посоветовать использовать утилиту mysqltunner.

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

7. Использование системных утилит

8. Обслуживание системы

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

Так же можно выполнять оптимизацию таблиц БД. В официальной документации про это много написано.

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

Читайте также: