Condividi tramite


Funzionalità di progettazione della sicurezza ADO

Le sezioni seguenti descrivono le funzionalità di progettazione della sicurezza in ActiveX Data Objects (ADO) 2.8 e versioni successive. Queste modifiche sono state apportate in ADO 2.8 per migliorare la sicurezza. ADO 6.0, incluso in Windows DAC 6.0 in Windows Vista, è funzionalmente equivalente ad ADO 2.8, incluso in MDAC 2.8 in Windows XP e Windows Server 2003. Questo argomento fornisce informazioni su come proteggere al meglio le applicazioni in ADO 2.8 o versioni successive.

Importante

Se si aggiorna l'applicazione da una versione precedente di ADO, è consigliabile testare l'applicazione aggiornata in un computer non di produzione prima di distribuirla ai clienti. In questo modo, è possibile assicurarsi di conoscere eventuali problemi di compatibilità prima di distribuire l'applicazione aggiornata.

Scenari di accesso ai file di Internet Explorer

Le funzionalità seguenti influiscono sul funzionamento di ADO 2.8 e versioni successive quando viene usato nelle pagine Web con script in Internet Explorer.

Finestra di messaggio di avviso di sicurezza modificata e migliorata ora usata per avvisare gli utenti

Per ADO 2.7 e versioni precedenti, viene visualizzato il messaggio di avviso seguente quando una pagina Web con script tenta di eseguire il codice ADO da un provider non attendibile:

This page accesses data on another domain. Do you want to allow this? To
avoid this message in Internet Explorer, you can add a secure Web site to
your Trusted Sites zone on the Security tab of the Internet Options dialog
box.

Per ADO 2.8 e versioni successive, il messaggio precedente non viene più visualizzato. In questo contesto viene visualizzato invece il messaggio seguente:

This Website uses a data provider that may be unsafe. If you trust the
Website, click OK, otherwise click Cancel.

Il messaggio precedente consente all'utente di prendere decisioni informate, conoscendo al tempo stesso le conseguenze di una delle due scelte:

  • Se l'utente considera attendibile il sito, fare clic su OK per consentire l'esecuzione nella finestra del browser di tutti i metodi e le proprietà ADO con le eccezioni delle API accessibili dal disco descritte più avanti in questo argomento.

  • Se l'utente non considera attendibile il sito, fare clic su Annulla blocca l'esecuzione del codice ADO per l'accesso ai dati nell'intero sito.

Codice accessibile dal disco limitato ora ai siti attendibili

Sono state apportate altre modifiche alla progettazione in ADO 2.8 che limitano in modo specifico la capacità di un set limitato di API, che potrebbero esporre il potenziale per leggere o scrivere nei file nel computer locale. Ecco i metodi API che sono stati ulteriormente limitati per la sicurezza durante l'esecuzione di Internet Explorer:

Per questi set limitati di funzioni potenzialmente accessibili dal disco, il comportamento seguente si verifica per ADO 2.8 e versioni successive, se un codice che usa questi metodi viene eseguito in Internet Explorer:

  • Se il sito che ha fornito il codice è stato aggiunto in precedenza all'elenco di aree Siti attendibili, il codice viene eseguito nel browser e l'accesso viene concesso ai file locali.

  • Se il sito non viene visualizzato nell'elenco di aree Siti attendibili, il codice viene bloccato e l'accesso ai file locali viene negato.

    Nota

    In ADO 2.8 e versioni successive, l'utente non viene avvisato o non gli viene consigliato di aggiungere siti all'elenco di aree Siti attendibili. Pertanto, la gestione dell'elenco Siti attendibili è responsabilità di coloro che distribuiscono o supportano applicazioni basate su siti Web che richiedono l'accesso al file system locale.

Accesso bloccato alla proprietà ActiveCommand negli oggetti Recordset

Quando si esegue in Internet Explorer, ADO 2.8 ora blocca l'accesso alla proprietà ActiveCommand per un oggetto Recordset attivo e restituisce un errore. L'errore si verifica indipendentemente dal fatto che la pagina provenga da un sito Web registrato nell'elenco Siti attendibili.

Modifiche alla gestione per i provider OLE DB e alla sicurezza integrata

Durante la revisione di ADO 2.7 e versioni precedenti per potenziali problemi di sicurezza, è stato individuato lo scenario seguente:

In alcuni casi, i provider OLE DB che supportano la proprietà DBPROP_AUTH_INTEGRATED della sicurezza integrata potrebbero consentire alle pagine Web con script di riutilizzare l'oggetto Connessione ADO per connettersi involontariamente ad altri server utilizzando le credenziali di accesso correnti degli utenti. Per evitare questo problema, ADO 2.8 e versioni successive gestiscono i provider OLE DB a seconda di come hanno scelto di fornire, o non fornire, la sicurezza integrata.

Per le pagine Web caricate dai siti elencati nell'elenco aree Siti attendibili, la tabella seguente fornisce una suddivisione del modo in cui ADO 2.8 e versioni successive gestisce le connessioni ADO in ogni caso.

Impostazioni di Internet Explorer per l'autenticazione utente, accesso Il provider supporta la "sicurezza integrata" e UID e PWD sono specificati (SQLOLEDB) Il provider non supporta la "sicurezza integrata" (JOLT, MSDASQL, MSPersist) Il provider supporta la "sicurezza integrata" ed è impostato su SSPI (non sono specificati UID/PWD)
Accesso automatico con nome utente e password correnti Consenti la connessione Consenti la connessione Consenti la connessione
Richiedi nome utente e password Consenti la connessione Connessione non riuscita Connessione non riuscita
Accesso automatico solo nell'area Intranet Consenti la connessione Richiedi conferma all'utente con avviso di sicurezza Richiedi conferma all'utente con avviso di sicurezza
Accesso anonimo Consenti la connessione Connessione non riuscita Connessione non riuscita

Nel caso in cui venga visualizzato un avviso di sicurezza, la finestra di messaggio informa gli utenti:

This Website is using your identity to access a data source. If you trust this Website, click OK, otherwise click Cancel.

Il messaggio precedente consente all'utente di prendere una decisione più informata e procedere di conseguenza.

Nota

Per i siti non attendibili (ovvero i siti non elencati nell'elenco di aree Siti attendibili), se il provider non è attendibile (come illustrato in precedenza in questa sezione), l'utente potrebbe visualizzare due avvisi di sicurezza in una riga, un avviso sul provider non sicuro e un secondo avviso sul tentativo di usare la propria identità. Se l'utente fa clic su OK per il primo avviso, vengono eseguite le impostazioni di Internet Explorer e il codice di comportamento della risposta descritti nella tabella precedente.

Controllo della restituzione del testo della password nelle stringhe di connessione ADO

Quando si prova a ottenere il valore della proprietà ConnectionString in un oggetto ADO Connection, si verificano gli eventi seguenti:

  1. Se la connessione è aperta, viene eseguita una chiamata di inizializzazione al provider OLE DB sottostante per ottenere la stringa di connessione.

  2. A seconda dell'impostazione nel provider OLE DB della proprietà DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO, le password vengono incluse insieme ad altre informazioni sulla stringa di connessione restituite.

Ad esempio, se la proprietà dinamica ADO Connection Persist Security Info è impostata su True, le informazioni sulla password vengono incluse nella stringa di connessione restituita. In caso contrario, se il provider sottostante ha impostato la proprietà su False, ad esempio con il provider SQLOLEDB, le informazioni sulla password vengono omesse nella stringa di connessione restituita.

Se si usano provider OLE DB di terze parti (ovvero non Microsoft) con il codice dell'applicazione ADO, è possibile verificare come viene implementata la proprietà DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO per determinare se è consentita l'inclusione di informazioni sulla password con le stringhe di connessione ADO.

Verifica della presenza di dispositivi non file durante il caricamento e il salvataggio di recordset o flussi

Per ADO 2.7 e versioni precedenti, le operazioni di input/output dei file, ad esempio Apri e Salva, usate per leggere e scrivere dati basati su file, possono in alcuni casi consentire l'uso di un URL o un nome di file che specifica un tipo di file non basato su disco. Ad esempio, LPT1, COM2, PRN.TXT, AUX può essere usata come alias per l'input/output tra stampanti e dispositivi ausiliari nel sistema utilizzando determinati

Per ADO 2.8 e versioni successive, questa funzionalità è stata aggiornata. Per l'apertura e il salvataggio di oggetti Recordset e Stream, ADO esegue ora un controllo del tipo di file per assicurarsi che il dispositivo di input o output specificato in un URL o un nome file sia un file effettivo.

Nota

Il controllo dei tipi di file come descritto in questa sezione si applica solo per Windows 2000 e versioni successive. Non si applica alle situazioni in cui ADO 2.8 o versione successiva è in esecuzione nelle versioni precedenti di Windows, ad esempio Windows 98.