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. In questo argomento vengono fornite 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 influisce 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 invece visualizzato 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, facendo clic su OK verrà consentita l'esecuzione di tutto il codice sicuro per il disco (tutti i metodi e le proprietà ADO, ad eccezione delle API accessibili dal disco come descritto più avanti in questo argomento) nel browser.

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

Codice accessibile dal disco ora limitato ai siti attendibili

Sono state apportate modifiche di progettazione aggiuntive in ADO 2.8 che limitano in modo specifico la capacità di un set limitato di API, che potrebbero esporre la possibilità di 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, si verifica il comportamento seguente per ADO 2.8 e versioni successive, se in Internet Explorer viene eseguito un codice che usa questi metodi:

  • 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 né 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

Durante l'esecuzione in Internet Explorer, ADO 2.8 blocca ora 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 la sicurezza integrata

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

In alcuni casi, i provider OLE DB che supportano la proprietà Integrated Security DBPROP_AUTH_INTEGRATED potrebbero consentire alle pagine Web con script di riutilizzare l'oggetto CONNESSIONE ADO per connettersi involontariamente ad altri server usando 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, per la sicurezza integrata.

Per le pagine Web caricate dai siti elencati nell'elenco delle 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 "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 connessione Consenti connessione Consenti connessione
Richiedi nome utente e password Consenti connessione Connessione non riuscita Connessione non riuscita
Accesso automatico solo nell'area Intranet Consenti connessione Richiedi conferma all'utente con avviso di sicurezza Mostra un avviso di sicurezza all'utente
Accesso anonimo Consenti 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 relativo al provider non sicuro e un secondo avviso relativo al 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 tenta di ottenere il valore della proprietà ConnectionString in un oggetto ADO Connection, si verificano i seguenti eventi:

  1. Se la connessione è aperta, viene effettuata 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 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 Open e Save utilizzate per leggere e scrivere dati basati su file, in alcuni casi possono 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 potrebbero essere utilizzati come alias per l'input/output tra stampanti e dispositivi ausiliari nel sistema utilizzando determinate condizioni.

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

Nota

Il controllo del tipo 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.