Dela via


Skydda Anslut ionsinformation

Att skydda åtkomsten till din datakälla är ett av de viktigaste målen när du skyddar ett program. En anslutningssträng utgör en potentiell säkerhetsrisk om den inte är skyddad. Att lagra anslutningsinformation i oformaterad text eller spara den i minnet riskerar att äventyra hela systemet. Anslut ionssträngar som är inbäddade i källkoden kan läsas med hjälp avIldasm.exe (IL Disassembler) för att visa det gemensamma mellanliggande språket (CIL) i en kompilerad sammansättning.

Säkerhetsrisker som rör anslutningssträng kan uppstå baserat på vilken typ av autentisering som används, hur anslutningssträng sparas i minnet och på disken samt de tekniker som används för att konstruera dem vid körning.

Använd Windows-autentisering

För att begränsa åtkomsten till din datakälla måste du skydda anslutningsinformation som användar-ID, lösenord och datakällans namn. För att undvika att exponera användarinformation rekommenderar vi att du använder Windows-autentisering (kallas ibland integrerad säkerhet) där det är möjligt. Windows-autentisering anges i en anslutningssträng med hjälp av nyckelorden Integrated Security ellerTrusted_Connection, vilket eliminerar behovet av att använda ett användar-ID och lösenord. När du använder Windows-autentisering autentiseras användarna av Windows, och åtkomsten till server- och databasresurser bestäms genom att ge behörigheter till Windows-användare och -grupper.

För situationer där det inte går att använda Windows-autentisering måste du vara extra försiktig eftersom användarautentiseringsuppgifterna exponeras i anslutningssträng. I ett ASP.NET program kan du konfigurera ett Windows-konto som en fast identitet som används för att ansluta till databaser och andra nätverksresurser. Du aktiverar personifiering i identitetselementet i filen web.config och anger ett användarnamn och lösenord.

<identity impersonate="true"
        userName="MyDomain\UserAccount"
        password="*****" />

Det fasta identitetskontot ska vara ett konto med låg behörighet som endast har beviljats nödvändiga behörigheter i databasen. Dessutom bör du kryptera konfigurationsfilen så att användarnamnet och lösenordet inte exponeras i klartext.

Undvik att lagra anslutningssträng för en OleDbConnection i en UDL-fil (Universal Data Link). UDL:er lagras i klartext och kan inte krypteras. En UDL-fil är en extern filbaserad resurs till ditt program och den kan inte skyddas eller krypteras med hjälp av .NET Framework.

Undvik inmatningsattacker med Anslut ionssträngsbyggare

En anslutningssträng inmatningsattack kan inträffa när dynamisk strängsammanfogning används för att skapa anslutningssträng baserat på användarindata. Om användarens indata inte verifieras och skadlig text eller tecken inte är undantagna kan en angripare komma åt känsliga data eller andra resurser på servern. För att lösa det här problemet introducerade ADO.NET 2.0 nya anslutningssträng builder-klasser för att verifiera anslutningssträng syntax och se till att ytterligare parametrar inte introduceras. Mer information finns i Anslut ion String Builders.

Använd Spara säkerhetsinformation=Falskt

Standardvärdet för Persist Security Info är falskt. Vi rekommenderar att du använder det här standardvärdet i alla anslutningssträng. Inställning Persist Security Info till eller yes tillåter att true säkerhetskänslig information, inklusive användar-ID och lösenord, hämtas från en anslutning när den har öppnats. När Persist Security Info är inställt på false eller noignoreras säkerhetsinformationen när den används för att öppna anslutningen, vilket säkerställer att en ej betrodd källa inte har åtkomst till säkerhetskänslig information.

Kryptera konfigurationsfiler

Du kan också lagra anslutningssträng i konfigurationsfiler, vilket eliminerar behovet av att bädda in dem i programmets kod. Konfigurationsfiler är xml-standardfiler som .NET Framework har definierat en gemensam uppsättning element för. Anslut ionssträngar i konfigurationsfiler lagras vanligtvis i <connectionStrings-elementet i app.config för ett Windows-program eller web.config-filen för ett ASP.NET program.> Mer information om grunderna för att lagra, hämta och kryptera anslutningssträng från konfigurationsfiler finns i Anslut ionssträngar och konfigurationsfiler.

Se även