Защищенные отчеты и ресурсы

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

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

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

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

Возможно, для решения поставленной задачи придется выполнить несколько назначений ролей. Допустим, нужно предоставить доступ к отчету двум пользователям (Анне и Фернандо) и членам группы менеджеров по управлению персоналом. Анна и Фернандо должны иметь возможность управлять отчетом, а члены группы менеджеров по управлению персоналом — только выполнять его. Для согласования всех этих пользователей необходимо создать три отдельных назначения ролей: одно — чтобы сделать Анну диспетчером содержимого отчета, второе — чтобы сделать Фернандо диспетчером содержимого отчета и третье — чтобы предоставить членам группы менеджеров по управлению персоналом право только на просмотр отчета.

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

Сдерживание атак, осуществляемых путем инжекции 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-кода.

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

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

См. также

Задания

настроить доступ к построителю отчетов

Сохранение учетных данных для источника данных (диспетчер отчетов)

Основные понятия

Создание назначений ролей и управление ими

Предоставление разрешений на сервер отчетов в собственном режиме

Защита совместно используемых элементов источника данных