logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • Статьи
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Безопасность скрипта отчёта
  • Как обновить веб отчет FastReport.Core

    21 сентября 2020 г.

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

    Подробнее
  • Как использовать FastCube .NET в приложении ASP .NET Core

    6 мая 2021 г.

    1. О FastCube Генератор отчетов FastReport .NET покрывает почти все потребности пользователей в отчетности. Но все

    Подробнее
  • Как использовать Online Designer в ASP .NET Core

    17 января 2018 г.

    Одной из новинок FastReport .NET 2018 стала адаптация OnlineDesigner под фреймворк .NET Core. В целом, онлайн

    Подробнее
  • Как использовать объект WebReport в приложениях ASP .NET Core

    17 января 2018 г.

    Не так давно FastReport порадовал нас новой библиотекой - FastReport Core. Это специальная версия FastReport

    Подробнее
  • Сборка библиотеки libgdiplus из исходного кода

    2 октября 2020 г.

    При использовании библиотек FastReport .NET (Core), FastReport Open Source и FastReport Mono под управлением операционной

    Подробнее

Безопасность скрипта отчёта

7 сентября 2020 г.

FastReport .NET поддерживает вычисление выражений для отображения значений в нужном виде, либо каких-либо условий видимости того или иного объекта. Также есть возможность обработки событий для каждого объекта отчёта, например, перед его печатью. Обработчики событий помещаются в скрипт отчёта, который поддерживает языки C# и VB.NET. Кроме обработки событий в скрипте могут быть практически любые вычисления или действия, которые могут сформировать нужные данные или изменить поведение отчёта, как это требуется разработчику шаблона отчёта.

Генератор отчётов перед построением учитывает все выражения, функции, обращения к параметрам в отчёте и строит программу на языке скрипта отчёта. Затем программа объединяется с тем скриптом, который мог написать разработчик шаблона отчёта. Полученный скрипт компилируется и загружается в виде библиотеки в приложение, которое работает с генератором отчётов.

Безопасность скрипта отчёта

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

Пока отчёты редактируются доверенными разработчиками и исполняются в изолированной среде, возможности применения скриптов в отчётах дают свободу и практически неограниченные возможности при обработке и визуализации данных. Их редактирование и исполнение находится под контролем. Как только появляется возможность всеобщего доступа к редактированию отчётов посредством браузера и Online Designer, возникает вопрос безопасности построения отчётов на сервере. Становится возможным внедрение вредоносного кода в скрипт и выражения отчёта.

Безопасность скрипта отчёта

Чтобы предотвратить выполнение вредоносного кода в скрипте и выражениях отчёта при работе их в вебе, в версии FastReport .NET 2020.3.22 были добавлены специальные средства безопасности. Изменения касаются FastReport .NET, FastReport .NET Core, FastReport Mono и FastReport Open Source.

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

bool FastReport.Utils.Config.EnableScriptSecurity – включает или отключает проверку скрипта отчёта. Работает только при работе отчётов в веб-приложениях (FastReport.Utils.Config.WebMode == true). Значение по умолчанию – true (включено).

event FastReport.Utils.Config.OnEnableScriptSecurityChanged – событие вызывается, когда EnableScriptSecurity был изменён. Может быть использовано для дополнительного контроля безопасности.

FastReport.Web.WebReport.SetScriptSecurity(IScriptChecker scriptChecker) - устанавливает пользовательскую реализацию метода проверки, которая перекрывает встроенные методы контроля безопасности.

ScriptSecurityProperties FastReport.Utils.Config.ScriptSecurityProps - параметры для настройки проверки безопасности скрипта. Содержит значение NULL если исполняется не веб-приложение (FastReport.Utils.Config.WebMode == false).

bool FastReport.Utils.Config.ScriptSecurityProps.AddStubClasses – включает или отключает добавление классов заглушек для скрипта. Значение по умолчанию – true (включено). Не перекрывается установкой собственного обработчика SetScriptSecurity (см. выше).

event FastReport.Utils.Config.ScriptSecurityProps.OnStopListChanged – событие вызывается, когда StopList был изменён. Может быть использовано для дополнительного контроля безопасности.

string[] FastReport.Utils.Config.ScriptSecurityProps.StopList - список ключевых слов, которые не должны быть использованы в скрипте отчёта. Содержит список слов по умолчанию.

FastReport.Utils.Config.ScriptSecurityProps.SetDefaultStopList() - устанавливает значение списка StopList по умолчанию (сбрасывает изменения).

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

Безопасность скрипта отчёта

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

О продукте Скачать Купить
avatar
Aleksandr Fediashov
Ведущий программист
Fast Reports Team: Aleksandr Fediashov - Team Lead at Fast Reports
.NET Core Open Source Script

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • Онлайн поддержка
  • FAQ
  • Видео уроки
  • Форум
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2022 ООО «Фаст Репортс»

  • Согласие с обработкой персональных данных
  • Не является публичной офертой