Поделиться через


Защита отчетов и ресурсов

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

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

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

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

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

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

Сдерживание атак, осуществляемых путем инжекции HTML-кода, в опубликованном отчете или документе

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

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

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

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

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

Сдерживание атак, осуществляемых путем инжекции кода SQL, в параметризованном отчете

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

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

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

ПримечаниеПримечание

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

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

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

См. также

Задания

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