Безопасные отчеты и ресурсы

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

Доступ на основе ролей к отчетам и ресурсам

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

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

Для достижения целей может потребоваться создать несколько назначений ролей. Например, предположим, что у вас есть отчет, который требуется сделать доступным для двух пользователей, Энна и Фернандо, а также для группы менеджеров по персоналу. Энн и Фернандо должны иметь возможность управлять отчетом, но сотрудники отдела кадров должны только запускать его. Чтобы учесть всех этих пользователей, вы создадите три отдельных назначения ролей: первое — назначить Энн менеджером контента отчёта, второе — назначить Фернандо менеджером контента отчёта, и третье — для поддержки задач только для просмотра для группы менеджеров по персоналу.

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

Устранение атак внедрения HTML в опубликованном отчете или документе

В службах Reporting Services отчеты и ресурсы обрабатываются под удостоверением безопасности пользователя, выполняющего отчет. Если отчет содержит выражения, скрипты, пользовательские элементы отчета или пользовательские сборки, код выполняется под учетными данными пользователя. Если ресурс является HTML-документом, содержащим скрипт, скрипт будет выполняться, когда пользователь открывает документ на сервере отчетов. Возможность выполнения скрипта или кода в отчете — это мощная функция, которая поставляется с определенным уровнем риска. Если код является вредоносным, сервер отчетов и пользователь, выполняющий отчет, уязвимы для атаки.

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

Вы можете снизить риск запуска вредоносного скрипта, выполнив следующие меры предосторожности:

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

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

Параметры отчета и внедрение скриптов

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

  1. Отчет содержит текстовое поле с действием гиперссылки, заданным для значения параметра, который может содержать вредоносный текст.

  2. Отчет публикуется на сервере отчетов или предоставляется таким образом, чтобы значение параметра отчета можно было контролировать с URL-адреса веб-страницы.

  3. Злоумышленник создает ссылку на веб-страницу или сервер отчетов, указывая значение параметра в форме "javascript:<вредоносный скрипт здесь>" и отправляет ссылку кому-либо другому в рамках атаки.

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

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

Устранение атак внедрения SQL в параметризованном отчете

В любом отчете, который содержит параметр типа String, обязательно используйте список доступных значений (также известный как допустимый список значений) и убедитесь, что любой пользователь, выполняющий отчет, имеет только разрешения, необходимые для просмотра данных в отчете. При определении параметра типа Stringпользователь отображает текстовое поле, которое может принимать любое значение. Список доступных значений ограничивает введенные значения. Если параметр отчета привязан к параметру запроса и не используется список доступных значений, пользователь отчета может вводить синтаксис SQL в текстовое поле, потенциально открывая отчет и сервер для атаки на внедрение SQL. Если у пользователя есть достаточные разрешения на выполнение новой инструкции SQL, на сервере могут возникнуть нежелательные результаты.

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

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

Замечание

В предыдущих выпусках документации был включен пример создания динамического запроса в виде выражения. Этот тип запроса создает уязвимость для атак SQL-инъекции и поэтому не рекомендуется.

Защита конфиденциальных отчетов

Отчеты, содержащие конфиденциальную информацию, должны быть защищены на уровне доступа к данным, требуя от пользователей предоставить учетные данные для доступа к конфиденциальным данным. Дополнительные сведения см. в статье Задание учетных данных и сведениях о соединении для источников данных отчета. Вы также можете защитить папку, чтобы сделать ее недоступной для несанкционированных пользователей. Дополнительные сведения см. в разделе "Безопасные папки".

См. также

(создание-и-управление-назначениями-ролей.md)
Настройка доступа к построителю отчетов
Предоставление разрешений на сервер отчетов в нативном режиме
Безопасные элементы общего источника данных
Хранение учетных данных в источнике данных Reporting Services