ASP.NET alapvető biztonsági témakörök
ASP.NET Core lehetővé teszi a fejlesztők számára a biztonság konfigurálását és kezelését. Az alábbi lista biztonsági témakörökre mutató hivatkozásokat tartalmaz:
- hitelesítés
- Engedélyezés
- adatvédelmi
- HTTPS kényszerítése
- Alkalmazás titkok biztonságos tárolása a fejlesztési fázisban
- XSRF/CSRF megelőzése
- Kereszteredetű erőforrás-megosztás (CORS)
- keresztoldali szkriptelés (XSS) támadások
Ezek a biztonsági funkciók lehetővé teszik, hogy robusztus és biztonságos ASP.NET Core-alkalmazásokat hozzon létre.
Ha Blazor biztonsági lefedettségről van szó, amely hozzáadja vagy felülírja a csomópont útmutatását, tekintse meg ASP.NET Core Blazor hitelesítési és engedélyezési, valamint BlazorBiztonsági és Identity csomópontjának egyéb cikkeit.
ASP.NET Alapvető biztonsági funkciók
ASP.NET Core számos eszközt és kódtárat biztosít ASP.NET Core-alkalmazások, például a beépített identitásszolgáltatók és külső identitásszolgáltatások, például a Facebook, a Twitter és a LinkedIn biztonságossá tételéhez. ASP.NET Core számos módszert kínál az alkalmazás titkos kulcsainak tárolására.
Hitelesítés és engedélyezés
hitelesítési olyan folyamat, amelyben a felhasználó olyan hitelesítő adatokat biztosít, amelyeket aztán összehasonlít egy operációs rendszerben, adatbázisban, alkalmazásban vagy erőforrásban tárolt hitelesítő adatokkal. Ha egyeznek, a felhasználók sikeresen hitelesítik magukat, majd egy engedélyezési folyamat során végrehajthatják az általuk engedélyezett műveleteket. Az engedélyezés arra a folyamatra vonatkozik, amely meghatározza, hogy egy felhasználó mit tehet.
A hitelesítés másik módja, ha úgy tekinti, mint egy helyet, például egy kiszolgálót, adatbázist, alkalmazást vagy erőforrást, míg az engedélyezés az, hogy a felhasználó milyen műveleteket hajthat végre az adott térben (kiszolgáló, adatbázis vagy alkalmazás) található objektumokon.
Gyakori biztonsági rések a szoftverben
ASP.NET Core és EF olyan funkciókat tartalmaz, amelyek segítenek az alkalmazások védelmében és a biztonsági incidensek megelőzésében. A webalkalmazások leggyakoribb biztonsági réseinek elkerülése érdekében az alábbi hivatkozások a dokumentáció részletezési technikáira mutatnak:
- keresztoldali szkriptelés (XSS) támadások
- SQL-injektálási támadások
- Webhelyek közötti kérelemhamisítás (XSRF/CSRF) támadások
- Nyílt átirányítási támadások
Több biztonsági rést is figyelembe kell vennie. További információt a tartalomjegyzék Biztonság és Identity szakaszában talál.
Biztonságos hitelesítési folyamatok
Javasoljuk, hogy a legbiztonságosabb hitelesítési lehetőséget használja. Az Azure-szolgáltatások esetében a legbiztonságosabb hitelesítés felügyelt identitások.
Kerülje az erőforrás-tulajdonos jelszó hitelesítő adatainak megadását, mert:
- Elérhetővé teszi a felhasználó jelszavát az ügyfél számára.
- Jelentős biztonsági kockázat.
- Csak akkor használható, ha más hitelesítési folyamatok nem lehetségesek.
A felügyelt identitások biztonságosan hitelesíthetők a szolgáltatásokban anélkül, hogy a hitelesítő adatokat kódban, környezeti változókban vagy konfigurációs fájlokban kellene tárolniuk. A felügyelt identitások elérhetők az Azure-szolgáltatásokhoz, és használhatók az Azure SQL-hez, az Azure Storage-hoz és más Azure-szolgáltatásokhoz:
- Felügyelt identitások a Microsoft Entra-ban az Azure SQL-hez
- Felügyelt identitások az App Service és az Azure Functions számára
- Biztonságos hitelesítési folyamatok
Amikor az alkalmazást egy tesztkiszolgálón helyezik üzembe, egy környezeti változóval a kapcsolati sztringet egy tesztadatbázis-kiszolgálóra állíthatja be. További információért lásd a Konfiguráció. A környezeti változók általában egyszerű, titkosítatlan szövegben vannak tárolva. Ha a gép vagy a folyamat sérült, a környezeti változókat nem megbízható felek érhetik el. Nem javasoljuk, hogy környezeti változókban tárolja az éles kapcsolati sztringet, mivel ez nem a legbiztonságosabb módszer.
Konfigurációs adatokra vonatkozó irányelvek:
- Soha ne tároljon jelszavakat vagy más bizalmas adatokat konfigurációszolgáltatói kódban vagy egyszerű szöveges konfigurációs fájlokban. A Secret Manager eszközzel titkos kulcsokat tárolhat a fejlesztés során.
- Ne használjon gyártási titkokat fejlesztési vagy tesztelési környezetekben.
- Adja meg a projekten kívüli érzékeny adatokat, hogy ezek véletlenül ne kerüljenek feltöltve egy forráskód-tárházba.
További információ:
- Kezelt identitás legjobb gyakorlati ajánlások
- Csatlakozás az alkalmazásból az erőforrásokhoz a kódban szereplő hitelesítő adatok kezelése nélkül
- Azure-szolgáltatások, amelyek felügyelt identitásokkal férhetnek hozzá más szolgáltatásokhoz
- IETF OAuth 2.0 biztonsági ajánlott eljárása
További információ a többi felhőszolgáltatóról:
- AWS (Amazon Web Services): AWS Key Management Service (KMS)
- Google Cloud Key Management Service áttekintése
Vállalati webalkalmazás-minták
A megbízható, biztonságos, teljesíthető, tesztelhető és méretezhető ASP.NET Core-alkalmazás létrehozásával kapcsolatos útmutatásért tekintse meg Vállalati webalkalmazás-mintákcímű témakört. Rendelkezésre áll egy teljes éles minőségű minta webalkalmazás, amely implementálja a mintákat.