← l-artikli kollha

.NET

X'Nagħmel biex Inġagħal Applikazzjoni .NET Aktar Sigura

Is-sigurtà mhix biss awtentikazzjoni. Iġjene tal-version control, secrets, validazzjoni tal-JWT, RBAC, HTTPS, monitoraġġ, fiduċja fid-dependencies, u reviżjoni ta' kull biċċa kodiċi ġġenerata minn LLM qabel ma taħdem.

X'Nagħmel biex Inġagħal Applikazzjoni .NET Aktar Sigura

Is-sigurtà tal-applikazzjoni mhix biss dwar li żżid awtentikazzjoni. Tinvolvi wkoll li tipproteġi l-kodiċi, l-infrastruttura, id-dejta, id-dependencies, u l-proċess tal-iżvilupp.

Uża l-version control sew

Git jgħin biex issegwi l-bidliet, tirrevedi l-kodiċi, u tirkupra minn żbalji.

Madankollu, fajls sensittivi qatt m'għandhom jiġu kkommettjati. Nuża .gitignore biex neskludi konfigurazzjoni lokali, secrets, u fajls iġġenerati.

appsettings.Development.json
.env
*.user

Ir-repożitorji għandhom ukoll jużaw pull requests u code reviews qabel ma bidliet importanti jiġu merged.

Qatt tagħmel hardcode ta' secrets

Passwords, connection strings, API keys, u signing keys tal-JWT m'għandhomx jinħażnu direttament fil-kodiċi tas-sors.

var connectionString =
    builder.Configuration.GetConnectionString("DefaultConnection");

Matul l-iżvilupp, nuża .NET User Secrets. F'Azure, is-secrets jistgħu jinħażnu f'Azure Key Vault jew jiġu pprovduti permezz ta' konfigurazzjoni sigura tal-ambjent.

Ipproteġi l-endpoints tal-API

L-endpoints għandhom jiġu protetti bl-użu ta' awtentikazzjoni u awtorizzazzjoni.

[Authorize]
[HttpGet("profile")]
public IActionResult GetProfile()
{
    return Ok();
}

Għal operazzjonijiet limitati, nuża rwoli jew politiki ta' awtorizzazzjoni:

[Authorize(Roles = "Admin")]

L-endpoints pubbliċi għandhom ikunu intenzjonati. Operazzjonijiet sensittivi qatt m'għandhom jiddependu biss fuq il-frontend jaħbi buttuna.

Ikkonfigura l-JWT bir-reqqa

Il-JWT jista' jintuża biex jawtentika talbiet, iżda t-tokens iridu jiġu vvalidati sew.

L-API għandha tivvalida l-issuer, l-audience, il-firma, u l-ħin ta' skadenza.

It-tokens għandhom ikollhom tul ta' ħajja raġonevoli, u s-signing keys iridu jiġu protetti. Il-payloads tal-JWT huma encoded, mhux encrypted, għalhekk passwords jew informazzjoni sensittiva qatt m'għandhom jitqiegħdu ġo fihom.

Segwi RBAC u least privilege

L-AZ-900 introduċieni għal Azure Role-Based Access Control. RBAC jiddefinixxi min jista' jaċċessa riżorsa u liema azzjonijiet jistgħu jwettqu.

L-istess prinċipju japplika ġewwa applikazzjoni. Utenti, servizzi, u kontijiet tad-database għandhom jirċievu biss il-permessi li jeħtieġu. Kont tad-database ta' applikazzjoni m'għandux awtomatikament ikollu aċċess ta' amministratur għas-server kollu tad-database.

Uża HTTPS

HTTPS jipproteġi l-komunikazzjoni bejn il-klijenti u l-API.

app.UseHttpsRedirection();

Applikazzjonijiet tal-produzzjoni għandhom jużaw ċertifikati TLS validi u jevitaw li jesponu endpoints sensittivi permezz ta' HTTP mhux encrypted.

Immonitorja l-applikazzjoni

Il-logs jgħinu jidentifikaw żbalji, attività suspetta, u problemi ta' prestazzjoni. Għodod bħal Grafana jistgħu juru dashboards bl-użu ta' metriċi miġbura mill-applikazzjoni u l-infrastruttura.

Sinjali utli jinkludu tentattivi ta' login falluti, rati għoljin ta' żbalji, volum mhux tas-soltu ta' talbiet, endpoints bil-mod, u użu tas-CPU jew tal-memorja. Il-logs qatt m'għandhom fihom passwords, access tokens, jew dejta sensittiva kompluta.

Uża dependencies fdati u aġġornati

Kull dependency iżid kodiċi li ma ktibtx jien iżda li l-applikazzjoni tiegħi xorta tiddependi fuqu. Qabel ma ninstalla package, niċċekkja jekk hux attivament miżmum, jekk ġejx minn sors fdat, jekk għandux vulnerabbiltajiet magħrufa, u jekk l-applikazzjoni verament teħtieġux.

Il-packages għandhom jiġu aġġornati bir-reqqa, ittestjati, u rreveduti minflok installati awtomatikament mingħajr ma tifhem l-impatt tagħhom.

Irrevedi l-kodiċi ġġenerat mill-LLM

L-LLMs jistgħu jgħinu jiġġeneraw kodiċi, konfigurazzjoni, u fajls tal-infrastruttura, iżda l-output tagħhom qatt m'għandu jiġi aċċettat b'għajnejh magħluqin. Dejjem nirrevedi kull kmand qabel ma nħaddmu, kull package li qed jiġi installat, bidliet ta' awtentikazzjoni u awtorizzazzjoni, migrazzjonijiet tad-database, secrets u konfigurazzjoni, fajls ta' Docker u deployment, u kwalunkwe kodiċi li jħassar jew jimmodifika dejta.

Id-developer jibqa' responsabbli għall-kodiċi finali.

Checklist finali

Uża version control u code reviews.
Qatt tagħmel hardcode ta' secrets.
Ipproteġi endpoints sensittivi.
Ivvalida tokens JWT sew.
Applika RBAC u least privilege.
Uża HTTPS.
Immonitorja logs u metriċi.
Uża dependencies fdati.
Irrevedi l-kodiċi kollu ġġenerat mill-LLM.

Is-sigurtà mhix feature miżjuda fl-aħħar. Għandha tkun parti minn kull stadju tal-iżvilupp.