.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.
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.