Kapcsolatadatok védelme
Az adatforráshoz való hozzáférés védelme az alkalmazások biztonságossá tételének egyik legfontosabb célja. A kapcsolati sztring potenciális biztonsági rést jelenthet, ha nincs biztosítva. A kapcsolati adatok egyszerű szövegben való tárolása vagy a memóriában való megőrzése veszélyeztetheti a teljes rendszert. A forráskódba beágyazott kapcsolati sztringek a Ildasm.exe (IL Disassembler) használatával olvashatók a lefordított szerelvény általános köztes nyelvének (CIL) megtekintéséhez.
A kapcsolati sztring biztonsági rések a használt hitelesítés típusa, a kapcsolati sztring memóriában és lemezen való megőrzése, valamint a futásidőben történő összeállításukhoz használt technikák alapján merülhetnek fel.
Fontos
A Microsoft azt javasolja, hogy a legbiztonságosabb hitelesítési folyamatot használja. Ha azure SQL-hez csatlakozik, az Azure-erőforrások felügyelt identitásai az ajánlott hitelesítési módszer.
Windows-hitelesítés használata
Az adatforráshoz való hozzáférés korlátozásához biztonságos kapcsolati adatokat kell megadnia, például a felhasználói azonosítót, a jelszót és az adatforrás nevét. A felhasználói adatok felfedésének elkerülése érdekében javasoljuk, hogy windowsos hitelesítést (más néven integrált biztonságot) használjon a helyszíni adatforrásokhoz. (Az Azure SQL-hez való csatlakozáskor azonbanFelügyelt identitások azure-erőforrásokhoz.) A Windows-hitelesítés egy kapcsolati sztring a kulcsszavak vagy Trusted_Connection
kulcsszavak Integrated Security
használatával van megadva, így nincs szükség felhasználói azonosítóra és jelszóra. A Windows-hitelesítés használatakor a felhasználókat a Windows hitelesíti, a kiszolgálói és adatbázis-erőforrásokhoz való hozzáférést pedig a Windows-felhasználók és -csoportok engedélyeinek megadása határozza meg.
Azokban az esetekben, amikor nem lehet Windows-hitelesítést használni, fokozott körültekintéssel kell elérhetővé tenni a felhasználói hitelesítő adatokat a kapcsolati sztring. Egy ASP.NET alkalmazásban konfigurálhat Egy Windows-fiókot rögzített identitásként, amely adatbázisokhoz és más hálózati erőforrásokhoz való csatlakozáshoz használható. Engedélyezi a megszemélyesítést a web.config fájl identitáselemében, és megadhatja a felhasználónevet és a jelszót.
<identity impersonate="true"
userName="MyDomain\UserAccount"
password="*****" />
A rögzített identitásfióknak alacsony jogosultságú fióknak kell lennie, amely csak a szükséges engedélyeket kapta meg az adatbázisban. Emellett titkosítania kell a konfigurációs fájlt, hogy a felhasználónév és a jelszó ne legyen egyértelmű szövegben elérhetővé téve.
Fontos
A Microsoft azt javasolja, hogy a legbiztonságosabb hitelesítési folyamatot használja. Az ebben az eljárásban leírt hitelesítési folyamat nagyon nagy megbízhatóságot igényel az alkalmazásban, és olyan kockázatokat hordoz, amelyek más folyamatokban nem jelennek meg. Ezt a folyamatot csak akkor érdemes használni, ha más biztonságosabb folyamatok, például a felügyelt identitások nem életképesek.
Ne használjon univerzális adathivatkozási (UDL-) fájlokat
Kerülje a kapcsolati sztring tárolását egy OleDbConnection univerzális adatkapcsolatú (UDL) fájlban. Az UCL-ek tiszta szövegben vannak tárolva, és nem titkosíthatók. Az UDL-fájlok az alkalmazás külső fájlalapú erőforrásai, és nem védhetők meg vagy titkosíthatók .NET-keretrendszer használatával.
Injektálási támadások elkerülése kapcsolati sztringkészítőkkel
Kapcsolati sztring injektálási támadás akkor fordulhat elő, ha dinamikus sztringösszefűzést használ a felhasználói bemeneten alapuló kapcsolati sztring létrehozásához. Ha a felhasználói bemenet nincs érvényesítve, és a rosszindulatú szöveg vagy karakterek nem szöknek meg, a támadó potenciálisan hozzáférhet bizalmas adatokhoz vagy más erőforrásokhoz a kiszolgálón. A probléma megoldásához ADO.NET 2.0 új kapcsolati sztring szerkesztőosztályokat vezetett be, amelyek ellenőrzik kapcsolati sztring szintaxist, és gondoskodnak arról, hogy további paraméterek ne legyenek beállítva. További információ: Kapcsolati sztringkészítők.
Használja a következő parancsot: Persist Security Info=False
Az alapértelmezett érték hamis; javasoljuk, hogy ezt az alapértelmezett értéket Persist Security Info
használja az összes kapcsolati sztring. true
A biztonsági szempontból bizalmas adatok ( például a felhasználói azonosító és a jelszó) megadása Persist Security Info
vagy yes
engedélyezése egy kapcsolatból való lekértetésére a megnyitás után. Amikor Persist Security Info
a rendszer a false
biztonsági adatokat a kapcsolat megnyitásához használja, a no
rendszer elveti vagy elveti a biztonsági adatokat, biztosítva, hogy a nem megbízható forrás ne férhessen hozzá a biztonsági szempontból bizalmas információkhoz.
Konfigurációs fájlok titkosítása
A kapcsolati sztring konfigurációs fájlokban is tárolhatja, ami szükségtelenné teszi, hogy beágyazza őket az alkalmazás kódjába. A konfigurációs fájlok olyan szabványos XML-fájlok, amelyekhez .NET-keretrendszer meghatározta a közös elemeket. A konfigurációs fájlok kapcsolati sztringjei általában egy <Windows-alkalmazás app.config app.config connectionStrings> elemében vagy egy ASP.NET-alkalmazás web.config fájljában vannak tárolva. A kapcsolati sztring konfigurációs fájlokból való tárolásának, beolvasásának és titkosításának alapjairól a kapcsolati sztringek és a konfigurációs fájlok című témakörben talál további információt.