Garantire la sicurezza di report e risorseSecure Reports and Resources

È possibile impostare la sicurezza per singoli report e risorse e controllare quindi i livelli di accesso concessi ai vari utenti per questi elementi.You can set security for individual reports and resources to control the degree of access that users have to these items. Per impostazione predefinita, solo i membri del gruppo Administrators predefinito possono eseguire report, visualizzare risorse, modificare proprietà ed eliminare elementi.By default, only users who are members of the Administrators built-in group can run reports, view resources, modify properties, and delete the items. Per tutti gli altri utenti è necessario creare assegnazioni di ruolo che consentano l'accesso a un report o a una risorsa.All other users must have role assignments created for them that allow access to a report or resource.

Accesso basato sui ruoli a report e risorseRole-based Access to Reports and Resources

Per concedere l'accesso a report e risorse, è possibile consentire agli utenti di ereditare le assegnazioni di ruolo esistenti da una cartella padre oppure creare una nuova assegnazione di ruolo nell'elemento stesso.To grant access to reports and resources, you can allow users to inherit existing role assignments from a parent folder or create a new role assignment on the item itself.

Nella maggior parte dei casi, è probabilmente preferibile utilizzare autorizzazioni ereditate da una cartella padre.In most cases, you will probably want to use the permissions that are inherited from a parent folder. L'impostazione della sicurezza per singoli report e risorse è in genere necessaria solo se si desidera nascondere questi elementi agli utenti che non hanno necessità di conoscerne l'esistenza oppure aumentare il livello di accesso all'elemento o al report.Setting security on individual reports and resources should only be necessary if you want to hide the report or resource from users who do not need to know that the report or resource exists, or to increase the level of access for a report or item. Queste due finalità non si escludono a vicenda.These objectives are not mutually exclusive. È possibile limitare l'accesso a un report a un numero inferiore di utenti e concedere a tutti, o solo ad alcuni, privilegi aggiuntivi per la gestione del report.You can restrict access to a report to a smaller set of users, and provide all or some of them with additional privileges to manage the report.

Per ottenere i risultati desiderati, potrebbe essere necessario creare più assegnazioni di ruolo.You may need to create multiple role assignments to achieve your objectives. Si supponga ad esempio che sia necessario rendere accessibile un determinato report agli utenti Ann e Fernando e al gruppo Responsabili risorse umane.For example, suppose you have a report that you want to make accessible to two users, Ann and Fernando, and to the Human Resource Managers group. Ann e Fernando devono essere in grado di gestire il report, mentre gli utenti del gruppo Responsabili risorse umane devono solo essere autorizzati a eseguirlo.Ann and Fernando must be able to manage the report, but the Human Resource Managers members need only to run it. Per gestire queste diverse tipologie di utenti, è necessario creare tre assegnazioni di ruolo distinte: una per assegnare ad Ann il ruolo Gestione contenuto per il report, un'altra per assegnare a Fernando il ruolo Gestione contenuto per il report e la terza per consentire attività di sola lettura al gruppo Responsabili risorse umane.To accommodate all of these users, you would create three separate role assignments: one to make Ann a content manager of the report, one to make Fernando a content manager of the report, and one to support view-only tasks for the Human Resource Managers group.

Quando si imposta la sicurezza per un report o una risorsa, le impostazioni rimangono associate all'elemento anche se lo si sposta in una nuova posizione.Once you set security on a report or resource, those settings stay with the item even if you move the item to a new location. Se, ad esempio, si sposta un report accessibile solo da un numero limitato di utenti, il report rimarrà disponibile solo per tali utenti anche se viene spostato in una cartella con criteri di sicurezza meno restrittivi.For example, if you move a report that only a few people are authorized to access, the report continues to be available to just those users even if you move it to a folder that has a relatively open security policy.

Riduzione del rischio di attacchi intrusivi nel codice HTML in un documento o in un report pubblicatoMitigating HTML Injection Attacks in a Published Report or Document

In Reporting ServicesReporting Servicesi report e le risorse vengono elaborati con l'identità di sicurezza dell'utente che sta eseguendo il report.In Reporting ServicesReporting Services, reports and resources are processed under the security identity of the user who is running the report. Se il report contiene espressioni, script, elementi del report personalizzati o assembly personalizzati, il codice viene eseguito con le credenziali dell'utente.If the report contains expressions, script, custom report items, or custom assemblies, the code runs under the user's credentials. Se una risorsa è un documento HTML che contiene script, lo script viene eseguito quando l'utente apre il documento nel server di report.If a resource is an HTML document that contains script, the script will run when the user opens the document on the report server. La possibilità di eseguire codice o script contenuti in un report è una caratteristica potente che comporta un determinato livello di rischio.The ability to run script or code within a report is a powerful feature that comes with a certain level of risk. Se il codice è dannoso, il server di report e l'utente che sta eseguendo il report sono vulnerabili a un attacco.If the code is malicious, the report server and the user who is running the report are vulnerable to attack.

Quando si concede l'accesso a report e risorse elaborati in formato HTML, è importante considerare che i report vengono eseguiti con attendibilità totale e pertanto potrebbero venire inviati al client script potenzialmente dannosi.When granting access to reports and to resources that are processed as HTML, it is important to remember that reports are processed in full trust and that potentially malicious script might be sent to the client. In base alle impostazioni del browser, il codice HTML viene eseguito dal client con il livello di attendibilità impostato nel browser.Depending on browser settings, the client will execute the HTML at the level of trust that is specified in the browser.

È possibile ridurre il rischio di esecuzione di script dannosi adottando le precauzioni seguenti:You can mitigate the risk of running malicious script by taking the following precautions:

  • Essere selettivi quando si definiscono gli utenti che possono pubblicare contenuti in un server di report.Be selective when deciding who can publish content to a report server. Poiché esiste la possibilità di pubblicare contenuti dannosi, è necessario limitare gli utenti che possono pubblicare i contenuti a un numero ristretto di utenti trusted.Because the potential for publishing malicious content exists, you should limit users who can publish content to a small number of trusted users.

  • Evitare in tutti i server di pubblicazione la pubblicazione di report e risorse provenienti da origini sconosciute o non attendibili.All publishers should avoid publishing reports and resources that come from unknown or untrusted sources. Se necessario, aprire il file in un editor di testo e verificare se sono presenti URL o script sospetti.If necessary, open the file in a text editor and look for suspicious script and URLs.

Attacchi intrusivi nei parametri e nel codice di script del reportReport Parameters and Script Injection

I parametri del report offrono la flessibilità necessaria per la progettazione e l'esecuzione complessive del report.Report Parameters provide flexibility for the overall report design and execution. In alcuni casi, questa stessa flessibilità può tuttavia essere sfruttata da un pirata informatico per compiere attacchi luring.However, this same flexibility can, in some cases be used by an attacker in luring attacks. Per ridurre il rischio di esecuzione involontaria di script dannosi, aprire esclusivamente i report visualizzabili provenienti da origini attendibili.To mitigate the risk of inadvertently running malicious scripts, only open rendered reports from trusted sources. È consigliabile tenere presente lo scenario seguente che costituisce un potenziale attacco di intrusione nel codice di script del renderer HTML:It is recommended you consider the following scenario that is a potential HTML Renderer script injection attack:

  1. Un report contiene una casella di testo in cui l'azione del collegamento ipertestuale è impostata sul valore di un parametro che potrebbe contenere testo dannoso.A report contains a text box with the hyperlink action set to the value of a parameter which could contain malicious text.

  2. Il report viene pubblicato in un server di report oppure viene reso disponibile in un modo che potrebbe consentire il controllo del parametro del report dall'URL di una pagina Web.The report is published to a report server or otherwise made available in such a way that the report parameter value can be controlled from the URL of a web page.

  3. Un pirata informatico crea un collegamento alla pagina Web o al server di report specificando il valore del parametro nella forma "javascript:<script dannoso in questo punto>" e invia tale collegamento a un altro utente nell'ambito di un attacco luring.An attacker creates a link to the web page or report server specifying the value of the parameter in the form "javascript:<malicious script here>" and sends that link to someone else in a luring attack.

I report possono contenere collegamenti ipertestuali incorporati nel valore della proprietà Action all'interno di un elemento del report o di una parte di un elemento del report.Reports can contain embedded hyperlinks in the value of the Action property on a report item or part of a report item. Quando il report viene elaborato, i collegamenti ipertestuali possono essere associati ai dati recuperati da un'origine dati esterna.Hyperlinks can be bound to data that is retrieved from an external data source when the report is processed. Se un utente malintenzionato modifica i dati sottostanti, il collegamento ipertestuale potrebbe essere a rischio di attacchi al codice di script.If a malicious user modifies the underlying data, the hyperlink might be at risk for scripting exploits. Se un utente fa clic sul collegamento nel report pubblicato o esportato, lo script dannoso potrebbe venire eseguito.If a user clicks the link in the published or exported report, malicious script could run.

Per ridurre il rischio di includere in un report collegamenti che eseguono inavvertitamente script dannosi, associare collegamenti ipertestuali solo ai dati provenienti da origini attendibili.To mitigate the risk of including links in a report that inadvertently run malicious scripts, only bind hyperlinks to data from trusted sources. Verificare che i dati restituiti da query ed espressioni che determinano l'associazione di dati a collegamenti ipertestuali non creino collegamenti che possano essere sfruttati da utenti malintenzionati.Verify that data from the query results and the expressions that bind data to hyperlinks do not create links that can be exploited. Ad esempio, non basare un collegamento ipertestuale su un'espressione che concatena dati da più campi del set di dati.For example, do not base a hyperlink on an expression that concatenates data from multiple dataset fields. Se necessario, passare al report e utilizzare "Visualizza origine" per verificare la presenza di script e URL sospetti.If necessary, browse to the report and use "View Source" to check for suspicious scripts and URLs.

Riduzione del rischio di attacchi intrusivi nel codice SQL in un report con parametriMitigating SQL Injection Attacks in a Parameterized Report

In qualsiasi report che includa un parametro di tipo Stringaccertarsi di usare un elenco di valori disponibili, anche detto elenco di valori validi, e assicurarsi che ogni utente che esegue il report disponga solo delle autorizzazioni necessarie per visualizzare i dati del report.In any report that includes a parameter of type String, be sure to use an available values list (also known as a valid values list) and ensure that any user running the report has only the permissions required to view the data in the report. Quando si definisce un parametro di tipo String, viene visualizzata una casella di testo che può accettare qualsiasi valore.When you define a parameter of type String, the user is presented with a text box that can take any value. Un elenco di valori disponibili consente di limitare i valori che è possibile immettere.An available values list limits the values that can be entered. Se un parametro di report è correlato a un parametro di query e non si utilizza un elenco di valori disponibili, un utente potrebbe digitare nella casella di testo sintassi SQL, esponendo il report e il server a un potenziale attacco intrusivo nel codice SQL.If the report parameter is tied to a query parameter and you do not use an available values list, it is possible for a report user to type SQL syntax into the text box, potentially opening the report and your server to a SQL injection attack. Se l'utente dispone di autorizzazioni sufficienti per eseguire la nuova istruzione SQL, è possibile che nel server si verifichino risultati non desiderati.If the user has sufficient permissions to execute the new SQL statement, it may produce unwanted results on the server.

Se un parametro di report non è correlato a un parametro di query e i valori del parametro sono inclusi nel report, un utente potrebbe digitare nel valore del parametro un URL o la sintassi di un'espressione ed eseguire il rendering del report in formato Excel o HTML.If a report parameter is not tied to a query parameter and the parameter values are included in the report, it is possible for a report user to type expression syntax or a URL into the parameter value and render the report to Excel or HTML. Se il report viene in seguito visualizzato da un altro utente che fa clic sul contenuto dei parametri di cui è stato eseguito il rendering, è possibile che venga inavvertitamente eseguito il collegamento o lo script dannoso.If another user then views the report and clicks the rendered parameter contents, the user may inadvertently execute the malicious script or link.

Per ridurre il rischio di eseguire inavvertitamente script dannosi, aprire i report visualizzabili solo da origini attendibili.To mitigate the risk of inadvertently running malicious scripts, open rendered reports only from trusted sources.

Nota

Nelle versioni precedenti della documentazione è incluso un esempio di creazione di una query dinamica come espressione.In previous releases of the documentation, an example of creating a dynamic query as an expression was included. Questo tipo di query crea una vulnerabilità agli attacchi intrusivi nel codice SQL e pertanto non è consigliabile.This type of query creates a vulnerability to SQL injection attacks and therefore is not recommended.

sicurezza di report con contenuto riservatoSecuring Confidential Reports

È consigliabile proteggere i report che contengono informazioni riservate in corrispondenza del livello di accesso ai dati, richiedendo agli utenti di specificare le credenziali per l'accesso ai dati riservati.Reports that contain confidential information should be secured at the data-access level, by requiring users to provide credentials to access sensitive data. Per altre informazioni, vedere Specificare le credenziali e le informazioni sulla connessione per le origini dati del report.For more information, see Specify Credential and Connection Information for Report Data Sources. È inoltre possibile proteggere una cartella in modo da renderla inaccessibile agli utenti non autorizzati.You can also secure a folder to make it inaccessible to unauthorized users. Per altre informazioni, vedere Proteggere le cartelle.For more information, see Secure Folders.

Vedere ancheSee Also

Creare e gestire assegnazioni di ruolo Create and Manage Role Assignments
Configurare l'accesso a Generatore report Configure Report Builder Access
Concessione di autorizzazioni in un server di report in modalità nativa Granting Permissions on a Native Mode Report Server
Proteggere le origini dei dati condivise Secure Shared Data Source Items
Archiviare le credenziali in un'origine dati di Reporting ServicesStore Credentials in a Reporting Services Data Source