[FIX] Many word and phrase replacements

This commit is contained in:
Ane Diaz de Tuesta
2021-03-19 08:30:37 +01:00
parent dafb1fdd2c
commit d67f20061c
18 changed files with 39 additions and 39 deletions

View File

@ -254,7 +254,7 @@ Irakurri beste hizkuntza batzuetan: [![EN](/assets/flags/EN.png)**EN**](/README.
**TL;PL:** ESLintek Vanilla JavaScript babesteko dituen arau estandarretatik aparte, komeni da Node.jsen osagai espeziko batzuk erabiltzea, hala nola [eslint-plugin-node](https://www.npmjs.com/package/eslint-plugin-node), [eslint-plugin-mocha](https://www.npmjs.com/package/eslint-plugin-mocha) eta [eslint-plugin-node-security](https://www.npmjs.com/package/eslint-plugin-security) **TL;PL:** ESLintek Vanilla JavaScript babesteko dituen arau estandarretatik aparte, komeni da Node.jsen osagai espeziko batzuk erabiltzea, hala nola [eslint-plugin-node](https://www.npmjs.com/package/eslint-plugin-node), [eslint-plugin-mocha](https://www.npmjs.com/package/eslint-plugin-mocha) eta [eslint-plugin-node-security](https://www.npmjs.com/package/eslint-plugin-security)
**Bestela:** Node.jsen arau akastun batzuek radarraren kontrolari ihes egin ahal diote. Esaterako, garatzaileek sarbide moduan aldagai jakin baten beharra izan dezakete (require(variableCommeChemin)), edozein script JS erabiltzeko aukera ematen diena erasotzaileei. Node.jsen linterrek patroi horiek atzeman ditzakete eta garaiz jo alarma **Bestela:** Node.jsen arau akastun batzuek radarraren kontrolari ihes egin ahal diote. Esaterako, garatzaileek sarbide moduan aldagai jakin baten beharra izan dezakete (require(variableCommeChemin)), edozein JS script erabiltzeko aukera ematen diena erasotzaileei. Node.jsen linterrek patroi horiek atzeman ditzakete eta garaiz jo alarma
<br/><br/> <br/><br/>
@ -680,7 +680,7 @@ edo hornitzaileen lainoko zerbitzuak
## ![✔] 5.12. Izan aberrigabea, hil zerbitzariak ia egunero ## ![✔] 5.12. Izan aberrigabea, hil zerbitzariak ia egunero
**TL;PL:** gorde edozein datu mota (adibidez, erabiltzaile saioak, cacheak, kargatutako fitxategiak) kanpoko datu biltegietan; eta aztertu ez ote zenituzkeen zure zerbitzari guztiak aldian behin “hil” beharko edo “zerbitzaririk gabe”ko plataformaren bat erabili (adibidez, AWS Lambda), berariaz stateless jokaera duena **TL;PL:** gorde edozein datu mota (adibidez, erabiltzaile saioak, cacheak, kargatutako fitxategiak) kanpoko datu biltegietan; eta aztertu ez ote zenituzkeen zure zerbitzari guztiak aldian behin “hil” beharko edo “zerbitzaririk gabe”ko plataformaren bat erabili (adibidez, AWS Lambda), berariaz aberrigabe (stateless) jokaera duena
**Bestela:** zerbitzari jakin batek huts eginez gero, makina akastun bat hil beharrean, aplikazioen geldialdia eragingo du. Gainera, gero eta zailagoa izango da mailaketaren elastikotasuna, zerbitzari jakin baten menpeko izanda **Bestela:** zerbitzari jakin batek huts eginez gero, makina akastun bat hil beharrean, aplikazioen geldialdia eragingo du. Gainera, gero eta zailagoa izango da mailaketaren elastikotasuna, zerbitzari jakin baten menpeko izanda
@ -780,7 +780,7 @@ edo hornitzaileen lainoko zerbitzuak
<a href="https://www.owasp.org/index.php/Denial_of_Service" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20DDOS%20-green.svg" alt=""/></a> <a href="https://www.owasp.org/index.php/Denial_of_Service" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20DDOS%20-green.svg" alt=""/></a>
**TL;PL:** DOS erasoak oso ezagunak dira, eta nahiko erraz eragin daitezke. Ezarri abiadura muga kanpoko zerbitzu bat erabiliz, hala nola hodeiko karga orekatzaileak, hodeiko suebakiak, nginx, [rate-limiter-flexible](https://www.npmjs.com/package/rate-limiter-flexible) edo (aplikazio txikiagoak eta ez hain kritikoetarako) abiadura mugatzeko middleware bat (adibidez, [express-rate-limit](https://www.npmjs.com/package/express-rate-limit), express abiadura mugatzailea) **TL;PL:** DOS erasoak oso ezagunak dira, eta nahiko erraz eragin daitezke. Ezarri abiadura muga kanpoko zerbitzu bat erabiliz, hala nola hodeiko karga orekatzaileak, hodeiko suebakiak, nginx, [abiadura-mugatzaile-malgua](https://www.npmjs.com/package/rate-limiter-flexible) (rate-limiter-flexible) edo (aplikazio txikiagoak eta ez hain kritikoetarako) abiadura mugatzeko middleware bat (adibidez, [express-rate-limit](https://www.npmjs.com/package/express-rate-limit), express abiadura mugatzailea)
**Bestela:** aplikazio batek erasoak jasan ahal ditu, haren erabiltzaileei ukatzen bazaie jaso beharko luketen zerbitzua, aplikazioa egoera txarrean dagoelako edo eskuragarri ez dagoelako **Bestela:** aplikazio batek erasoak jasan ahal ditu, haren erabiltzaileei ukatzen bazaie jaso beharko luketen zerbitzua, aplikazioa egoera txarrean dagoelako edo eskuragarri ez dagoelako
@ -848,7 +848,7 @@ edo hornitzaileen lainoko zerbitzuak
<a href="https://www.owasp.org/index.php/Top_10-2017_A2-Broken_Authentication" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20A9:Broken%20Authentication%20-green.svg" alt=""/></a> <a href="https://www.owasp.org/index.php/Top_10-2017_A2-Broken_Authentication" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20A9:Broken%20Authentication%20-green.svg" alt=""/></a>
**TL;PL:** pasahitzak eta sekretuak (adibidez API gakoak) gorde behar dira hash + gatz funtzio seguru bat erabiliz, esaterako, `bcrypt`edo `scrypt`; eta kasurik okerrenean, `pbkdf2` **TL;PL:** pasahitzak eta sekretuak (adibidez API giltzak) gorde behar dira hash + gatz funtzio seguru bat erabiliz, esaterako, `bcrypt`edo `scrypt`; eta kasurik okerrenean, `pbkdf2`
**Bestela:** funtzio segururik erabili gabe gordetzen diren pasahitzak eta sekretuak bortxaz erasotuak izan daitezke edo hiztegi erasoak jasan ditzakete. Azkenean agerian gera daitezke, bai eta agian zabaldu ere **Bestela:** funtzio segururik erabili gabe gordetzen diren pasahitzak eta sekretuak bortxaz erasotuak izan daitezke edo hiztegi erasoak jasan ditzakete. Azkenean agerian gera daitezke, bai eta agian zabaldu ere
@ -1053,7 +1053,7 @@ edo hornitzaileen lainoko zerbitzuak
**TL;PL:** neurriak hartu behar dira npm erregistro publikoetan sekretuak nahi gabe argitaratzeko arriskua ekiditeko. Erabil daiteke `.npmignore` fitxategi bat karpeta edo fitxategi espezikoak zerrenda beltz batean jartzeko eta `files` matrizea `package.json` artxiboarekin erabil daiteke zerrenda zuri moduan lan egin dezan **TL;PL:** neurriak hartu behar dira npm erregistro publikoetan sekretuak nahi gabe argitaratzeko arriskua ekiditeko. Erabil daiteke `.npmignore` fitxategi bat karpeta edo fitxategi espezikoak zerrenda beltz batean jartzeko eta `files` matrizea `package.json` artxiboarekin erabil daiteke zerrenda zuri moduan lan egin dezan
**Bestela:** arriskua dago norbaitek zure proiektuaren API gakoak, pasahitzak edo beste sekretu batzuk aurkitu eta erasoak egiten saiatzeko, eta horrek galera ekonomikoak, nortasun arazoak eta bestelako arriskuak sor ditzake **Bestela:** arriskua dago norbaitek zure proiektuaren API giltzak, pasahitzak edo beste sekretu batzuk aurkitu eta erasoak egiten saiatzeko, eta horrek galera ekonomikoak, nortasun arazoak eta bestelako arriskuak sor ditzake
🔗 [**Informazio gehiago: saihestu sekretuak argitaratzea**](/sections/security/avoid_publishing_secrets.basque.md) 🔗 [**Informazio gehiago: saihestu sekretuak argitaratzea**](/sections/security/avoid_publishing_secrets.basque.md)
<br/><br/><br/> <br/><br/><br/>
@ -1100,7 +1100,7 @@ edo hornitzaileen lainoko zerbitzuak
**Bestela:** irudi handiagoek denbora gehiago beharko dute konpilatzeko eta zabaltzeko. Eraikitzeko soilik diren tresnek ahultasunak eduki ditzakete eta eraikitze faserako soilik gordetako sekretuak filtratu daitezke **Bestela:** irudi handiagoek denbora gehiago beharko dute konpilatzeko eta zabaltzeko. Eraikitzeko soilik diren tresnek ahultasunak eduki ditzakete eta eraikitze faserako soilik gordetako sekretuak filtratu daitezke
### Etapa anitzeko eraikuntzetarako Dockerfile adibidea ### Etapa anitzeko eraikuntzetarako Dockerfile fitxategiaren adibidea
```dockerfile ```dockerfile
FROM node:14.4.0 AS build FROM node:14.4.0 AS build
@ -1219,7 +1219,7 @@ Gainera, irudi etiketa bat aipatzen bada, oinarrizko irudia aldatu egin daiteke,
## ![✔] 8.11. Garbitu eraikitze faseko sekretuak, saihestu sekretuak argudioetan ## ![✔] 8.11. Garbitu eraikitze faseko sekretuak, saihestu sekretuak argudioetan
**TL;PL:** saihestu Dockerren konpilazio inguruneko sekretuak agerian geratzea. Docker irudi bat IE bezalako ingurune anitzetan eta ekoizpena bezain garbituta ez dauden erregistroetan partekatzen da normalean. Adibide tipikoa npm token da, normalean dockerfile batera pasatzen dena argumentu gisa. Token hori irudiaren barruan geratzen da denbora luzez beharrezkoa izateari utzi ondoren ere, eta erasotzaileari npm erregistro pribatura sartzeko aukera ematen dio. Hori ekidin daiteke sekretua `.npmrc` bezalako fitxategi batean kopiatuz, eta, ondoren, sekretu hori kenduz etapa anitzeko eraikuntza bat erabiliz (kontuz, eraikitze historia ere ezabatu beharko litzateke) edo bat ere aztarnarik uzten dituen Docker build-kit funtzio sekretua erabiliz **TL;PL:** saihestu Dockerren konpilazio inguruneko sekretuak agerian geratzea. Docker irudi bat IE bezalako ingurune anitzetan eta ekoizpena bezain garbituta ez dauden erregistroetan partekatzen da normalean. Adibide tipikoa npm giltza (tokena) da, normalean dockerfile fitxategi batera pasatzen dena argumentu gisa. Giltza hori irudiaren barruan geratzen da denbora luzez beharrezkoa izateari utzi ondoren ere, eta erasotzaileari npm erregistro pribatura sartzeko aukera ematen dio. Hori ekidin daiteke sekretua `.npmrc` bezalako fitxategi batean kopiatuz, eta, ondoren, sekretu hori kenduz etapa anitzeko eraikuntza bat erabiliz (kontuz, eraikitze historia ere ezabatu beharko litzateke) edo bat ere aztarnarik uzten dituen Docker build-kit funtzio sekretua erabiliz
**Bestela:** IE eta docker erregistroan sartzeko aukera duten guztiek erakundearen sekretu preziatuak ere eskuratzeko aukera izango dute onura gehigarri gisa **Bestela:** IE eta docker erregistroan sartzeko aukera duten guztiek erakundearen sekretu preziatuak ere eskuratzeko aukera izango dute onura gehigarri gisa
@ -1257,11 +1257,11 @@ Gainera, irudi etiketa bat aipatzen bada, oinarrizko irudia aldatu egin daiteke,
## ![✔] 8.15. Garbitu zure Dockerfile fitxategia Linterra erabiliz ## ![✔] 8.15. Garbitu zure Dockerfile fitxategia Linterra erabiliz
**TL;PL:** Linterra erabiliz zure Dockerfilea garbitzea urrats garrantzitsua da haren barruan jardunbide egokiak errespetatzen ez dituzten arazoak identifikatzeko. Docker linter espezializatu bat erabiliz errendimendu eta segurtasun hobekuntzak erraz atzematen dira, alferrikako ordu ugari aurreztea edo produkzio kodean segurtasun arazoak murriztea lortuz **TL;PL:** Linterra erabiliz zure Dockerfile fitxategia garbitzea urrats garrantzitsua da haren barruan jardunbide egokiak errespetatzen ez dituzten arazoak identifikatzeko. Docker garbitzaile (linter) espezializatu bat erabiliz errendimendu eta segurtasun hobekuntzak erraz atzematen dira, alferrikako ordu ugari aurreztea edo produkzio kodean segurtasun arazoak murriztea lortuz
**Bestela:** okerrez, Dockerfileren sortzaileak root bat utzi zuen produkzio erabiltzaile moduan, eta jatorri ezezaguneko biltegi irudi bat ere erabili zuen. Hori liner soil batekin ekidin liteke. **Bestela:** okerrez, Dockerfile fitxategiaren sortzaileak nagusi (root) bat utzi zuen produkzio erabiltzaile moduan, eta jatorri ezezaguneko biltegi irudi bat ere erabili zuen. Hori liner soil batekin ekidin liteke.
🔗 [**Informazio gehiago: garbitu zure Dockerfilea**](/sections/docker/lint-dockerfile.basque.md) 🔗 [**Informazio gehiago: garbitu zure Dockerfile fitxategia**](/sections/docker/lint-dockerfile.basque.md)
<br/><br /><br /> <br/><br /><br />

View File

@ -2,7 +2,7 @@
## Azalpena ## Azalpena
Ohikoa da jendeak `CMD 'npm start'` erabiltzea bere aplikazioa abiarazteko kodea egitea. Praktika txarra da hori, ordea. `npm` bitarrak ez du seinalerik birbidaliko zure aplikaziora, aplikazioa behar bezala ixtea eragozten duena (ikus [/sections/docker/graceful-shutdown.basque.md]). Bigarren mailako prozesuak erabiltzen badituzu, ez dira behar bezala garbituko ustekabeko itzaltzeren bat gertatzen bada, prozesu automatak utziko dituena. `npm start`ek ere onuragarria ez den prozesu bat gehiago egiten du. Erabili `CMD ['node','server.js']` zure aplikazioa abiarazteko. Zure aplikazioak bigarren mailako prozesuak baditu, erabili gainera `TINI`sarbide gisa. Ohikoa da jendeak `CMD 'npm start'` erabiltzea bere aplikazioa abiarazteko kodea egitea. Praktika txarra da hori, ordea. `npm` bitarrak ez du seinalerik birbidaliko zure aplikaziora, aplikazioa behar bezala ixtea eragozten duena (ikus [/sections/docker/graceful-shutdown.basque.md]). Bigarren mailako prozesuak erabiltzen badituzu, ez dira behar bezala garbituko ustekabeko itzaltzeren bat gertatzen bada, prozesu zonbieak utziko dituena. `npm start`ek ere onuragarria ez den prozesu bat gehiago egiten du. Erabili `CMD ['node','server.js']` zure aplikazioa abiarazteko. Zure aplikazioak bigarren mailako prozesuak baditu, erabili gainera `TINI`sarbide gisa.
### Kode adibidea: abiarazi aplikazioa Node erabiliz ### Kode adibidea: abiarazi aplikazioa Node erabiliz

View File

@ -4,7 +4,7 @@
### Azalpena ### Azalpena
Docker konpilazio komandoak tokian tokiko fitxategiak konpilazioaren testuinguruko ingurunean kopiatzen ditu sare birtual baten bidez. Kontuz ibili, garapen eta IE karpetek .npmrc, .aws, .env fitxategiak eta beste fitxategi garrantzitsu batzuk eduki ditzakete eta. Ondorioz, gertatu daiteke Dockereko irudiek sekretuak gordetzea eta lurralde arriskutsuetan agerian uztea (esaterako Docker bilgailua, kideen zerbitzariak). Mundu hobe batean Dockerfilek zehaztu beharko luke zer ari den kopiatzen. Horretaz gainera, azken segurtasun sare gisa, gehitu .dockerignore fitxategia, beharrezkoak ez diren karpetak eta balizko sekretuak iragazten dituena. Hori egiteak abiadura azkartzen du gainera, ekoizpenean erabilerarik ez duten garapen karpeta arruntak alde batera utziz (adibidez .git, proben emaitzak, garatze programen konfigurazioak), eraikitzaileak cachea hobeto erabil dezake eta errendimendu hobea eskuratu Docker konpilazio komandoak tokian tokiko fitxategiak konpilazioaren testuinguruko ingurunean kopiatzen ditu sare birtual baten bidez. Kontuz ibili, garapen eta IE karpetek .npmrc, .aws, .env fitxategiak eta beste fitxategi garrantzitsu batzuk eduki ditzakete eta. Ondorioz, gertatu daiteke Dockereko irudiek sekretuak gordetzea eta lurralde arriskutsuetan agerian uztea (esaterako Docker bilgailua, kideen zerbitzariak). Mundu hobe batean Dockerfile fitxategiak zehaztu beharko luke zer ari den kopiatzen. Horretaz gainera, azken segurtasun sare gisa, gehitu .dockerignore fitxategia, beharrezkoak ez diren karpetak eta balizko sekretuak iragazten dituena. Hori egiteak abiadura azkartzen du gainera, ekoizpenean erabilerarik ez duten garapen karpeta arruntak alde batera utziz (adibidez .git, proben emaitzak, garatze programen konfigurazioak), eraikitzaileak cachea hobeto erabil dezake eta errendimendu hobea eskuratu
<br/><br/> <br/><br/>

View File

@ -57,7 +57,7 @@ CMD [ "node", "dist/app.js" ]
<br/><br/> <br/><br/>
### Anti ereduaren kode adibidea: instalatu menpekotasun guztiak Dockerfileko etapa bakarrean ### Anti ereduaren kode adibidea: instalatu menpekotasun guztiak Dockerfile fitxategiko etapa bakarrean
<details> <details>

View File

@ -2,11 +2,11 @@
### Azalpena ### Azalpena
Gure oinarrizko aplikazioaren kodea jardunbide onen arabera lan egiteko eta arazo bihurtu aurretik arazoak eta akatsak ezabatzeko eratuta dago, eta gure Dockerfileek ere hala beharko lukete. Dockerfile fitxategiak garbitzeak ekoizpen arazoak garaiz atzemateko aukerak handitzea dakar oso ahalegin txikiarekin. Adibidez, zure Dockefileetan zehaztutako logikarekin eta aginduekin inolako egiturazko arazorik ez dagoela ziurtatu dezake; esaterako, existitzen ez den etapa bat kopiatzea, onlineko biltegi ezezagun batetik kopiak egitea, aplikazioa super erabiltzailearekin (SUDO) exekutatzea eta beste hainbat. Dockerfileren [Hadolint](https://github.com/hadolint/hadolint) linter irekia (Open Source) eskuz edota IE prozesuaren zati gisa erabil daiteke zure Dockerfilea(k) garbitzeko. Hadolint Dockerfile garbitzaile aurreratua da, [Dockerren jardunbide egokiak](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/) bultzatzen dituena. Gure oinarrizko aplikazioaren kodea jardunbide onen arabera lan egiteko eta arazo bihurtu aurretik arazoak eta akatsak ezabatzeko eratuta dago, eta gure Dockerfile fitxategiek ere hala beharko lukete. Dockerfile fitxategiak garbitzeak ekoizpen arazoak garaiz atzemateko aukerak handitzea dakar oso ahalegin txikiarekin. Adibidez, zure Dockefileetan zehaztutako logikarekin eta aginduekin inolako egiturazko arazorik ez dagoela ziurtatu dezake; esaterako, existitzen ez den etapa bat kopiatzea, onlineko biltegi ezezagun batetik kopiak egitea, aplikazioa super erabiltzailearekin (SUDO) exekutatzea eta beste hainbat. Dockerfile fitxategiren [Hadolint](https://github.com/hadolint/hadolint) linter irekia (Open Source) eskuz edota IE prozesuaren zati gisa erabil daiteke zure Dockerfile fitxategia(k) garbitzeko. Hadolint Dockerfile fitxategi garbitzaile aurreratua da, [Dockerren jardunbide egokiak](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/) bultzatzen dituena.
<br/> <br/>
### Kode adibidea: arakatu Dockerfilea hadolint erabiliz ### Kode adibidea: arakatu Dockerfile fitxategia hadolint erabiliz
```bash ```bash
hadolint production.Dockerfile hadolint production.Dockerfile
@ -18,9 +18,9 @@ hadolint --trusted-registry my-company.com:500 <Dockerfile> # Erabiltzailea jaki
[Josh Reichardt](https://thepracticalsysadmin.com/lint-your-dockerfiles-with-hadolint/)en bloga: [Josh Reichardt](https://thepracticalsysadmin.com/lint-your-dockerfiles-with-hadolint/)en bloga:
> Oraindik ez badaukazu zure Dockerfileak garbitzeko ohiturarik, ohitu zaitez egiten. Kode garbiketa software garapeneko praktika arrunta da, arazo eta akatsak aurkitu, identifikatu eta ezabatzen laguntzen duena benetako arazo bihurtu aurretik. Zure kodea garbitzearen abantaila handienetako bat da akats txiki korapilasuak atzematen eta ezabatzen laguntzen duela, arazo bihurtu aurretik. > Oraindik ez badaukazu zure Dockerfile fitxategiak garbitzeko ohiturarik, ohitu zaitez egiten. Kode garbiketa software garapeneko praktika arrunta da, arazo eta akatsak aurkitu, identifikatu eta ezabatzen laguntzen duena benetako arazo bihurtu aurretik. Zure kodea garbitzearen abantaila handienetako bat da akats txiki korapilasuak atzematen eta ezabatzen laguntzen duela, arazo bihurtu aurretik.
[Jamie Phillips](https://www.phillipsj.net/posts/hadolint-linting-your-dockerfile/)en bloga: [Jamie Phillips](https://www.phillipsj.net/posts/hadolint-linting-your-dockerfile/)en bloga:
> Linterrak sarri erabiltzen dira garapenean, lan taldeei programazio eta estilo erroreak atzematen laguntzeko. Hadolint Haskell erabiliz Dockerfileentzat sortutako linterra da. Tresna horrek zure Dockerfilearen sintaxia aztertzen du eta Dockerek zehaztutako jardunbide egokiak kontutan hartu. Plataforma nagusi gehienetarako balio du, eta tutorial honek edukiontzia erabiliko du Dockerfile batean garbiketa egiteko. > Garbitzaileak edota linterrak sarri erabiltzen dira garapenean, lan taldeei programazio eta estilo erroreak atzematen laguntzeko. Hadolint Haskell erabiliz Dockerfile fitxategientzat sortutako garbitzailea (linterra) da. Tresna horrek zure Dockerfile fitxategiaren sintaxia aztertzen du eta Dockerek zehaztutako jardunbide egokiak kontutan hartu. Plataforma nagusi gehienetarako balio du, eta tutorial honek edukiontzia erabiliko du Dockerfile fitxategi batean garbiketa egiteko.
> <br/> > <br/>

View File

@ -2,7 +2,7 @@
### Azalpena ### Azalpena
Etapa anitzeko konpilazioek aukera ematen dute eraikuntzei eta exekuzio denborari dagozkion inguruneko xehetasunak bereizteko, hala nola eskuragarri dauden binarioak, agerian dauden inguruneko aldagaiak eta baita azpiko sistema eragilea ere. Zure Docker fitxategiak etapa anitzetan banatzeak azken irudia eta edukiontziaren tamaina murrizten lagunduko dizu, zure aplikazioa egikaritzeko behar duzuna bakarrik bidaliko baituzu. Batzuetan, konpilazio fasean soilik beharrezkoak diren tresnak sartu beharko dituzu, adibidez garapenerako menpekotasunak, hala nola TypeScripten CLI. Konpilazio fasean instalatu dezakezu, eta azken irteera exekuzio fasean bakarrik erabili. Horrek esan nahi du zure irudia txikitu egingo dela, menpekotasun batzuk ez baitira kopiatuko. Agian, egikaritze aldian egon behar ez luketen inguruneko aldagai batzuk agerian jarri beharko dituzu eraikuntzan (aztertu [nola saihestu konpilazio aldiko sekretuak](/sections/docker/avoid-build-time-secrets.basque.md)), hala nola API gakoak eta zerbitzu zehatzekin komunikatzeko erabiltzen diren sekretuak. Azken fasean, aurrez eraikitako baliabideak kopiatu ditzakezu, hala nola zure konpilazio karpeta edo soilik ekoizpenekoak diren menpekotasunak, hurrengo urratsean ere eskuratu ditzakezunak. Etapa anitzeko konpilazioek aukera ematen dute eraikuntzei eta exekuzio denborari dagozkion inguruneko xehetasunak bereizteko, hala nola eskuragarri dauden binarioak, agerian dauden inguruneko aldagaiak eta baita azpiko sistema eragilea ere. Zure Docker fitxategiak etapa anitzetan banatzeak azken irudia eta edukiontziaren tamaina murrizten lagunduko dizu, zure aplikazioa egikaritzeko behar duzuna bakarrik bidaliko baituzu. Batzuetan, konpilazio fasean soilik beharrezkoak diren tresnak sartu beharko dituzu, adibidez garapenerako menpekotasunak, hala nola TypeScripten CLI. Konpilazio fasean instalatu dezakezu, eta azken irteera exekuzio fasean bakarrik erabili. Horrek esan nahi du zure irudia txikitu egingo dela, menpekotasun batzuk ez baitira kopiatuko. Agian, egikaritze aldian egon behar ez luketen inguruneko aldagai batzuk agerian jarri beharko dituzu eraikuntzan (aztertu [nola saihestu konpilazio aldiko sekretuak](/sections/docker/avoid-build-time-secrets.basque.md)), hala nola API giltzak eta zerbitzu zehatzekin komunikatzeko erabiltzen diren sekretuak. Azken fasean, aurrez eraikitako baliabideak kopiatu ditzakezu, hala nola zure konpilazio karpeta edo soilik ekoizpenekoak diren menpekotasunak, hurrengo urratsean ere eskuratu ditzakezunak.
### Adibidea ### Adibidea

View File

@ -12,7 +12,7 @@ Dockeren exekuzio denboraren kudeatzaileak, Kubernetes bezala, benetan onak dira
<details> <details>
<summary><strong>Dockerfile artxiboa</strong></summary> <summary><strong>Dockerfile fitxategia</strong></summary>
``` ```
@ -31,7 +31,7 @@ CMD ["node", "index.js"]
<details> <details>
<summary><strong>Dockerfile artxiboa</strong></summary> <summary><strong>Dockerfile fitxategia</strong></summary>
``` ```
FROM node:12-slim FROM node:12-slim

View File

@ -2,7 +2,7 @@
## Azalpena ## Azalpena
Docker irudiak geruzen konbinazioak dira. Izan ere, zure Dockerfileko agindu bakoitzak geruza bat sortzen du. Dockeren daemonak konpilazioen arteko geruza horiek erabil ditzake, aginduak berdinak badira edo `COPY` edo `ADD` fitxategiak berdinak badira. ⚠️ Cachea ezin bada geruza jakin batean erabili, ondorengo geruza guztiak ere ezgaituak izango dira. Horrexegatik, ordena garrantzitsua da. Zure Dockerfilea zuzen diseinatzea ezinbestekoa da, zure konpilazioan atal mugikorren kopurua murrizteko; gutxien eguneratzen diren aginduak goialdean egon beharko lirateke, eta etengabe aldatzen ari diren aginduak (aplikazioaren kodea, esaterako), berriz, behe aldean. Docker irudiak geruzen konbinazioak dira. Izan ere, zure Dockerfile fitxategiko agindu bakoitzak geruza bat sortzen du. Dockeren daemonak konpilazioen arteko geruza horiek erabil ditzake, aginduak berdinak badira edo `COPY` edo `ADD` fitxategiak berdinak badira. ⚠️ Cachea ezin bada geruza jakin batean erabili, ondorengo geruza guztiak ere ezgaituak izango dira. Horrexegatik, ordena garrantzitsua da. Zure Dockerfile fitxategia zuzen diseinatzea ezinbestekoa da, zure konpilazioan atal mugikorren kopurua murrizteko; gutxien eguneratzen diren aginduak goialdean egon beharko lirateke, eta etengabe aldatzen ari diren aginduak (aplikazioaren kodea, esaterako), berriz, behe aldean.
Baita ere, garrantzitsua da jakitea operazio luzeak abiarazten dituzten aginduek puntu gorenaren inguruan egon beharko luketeela, horrela bermatuko delako bakarrik beharrezkoak direnean gertatzea (docker irudia eraikitzen duzun bakoitzean aldatzen ez badira behintzat). Cachetik Docker irudi bat berreraikitzea ia-ia berehalakoa izan daiteke era egokian eginez gero. Baita ere, garrantzitsua da jakitea operazio luzeak abiarazten dituzten aginduek puntu gorenaren inguruan egon beharko luketeela, horrela bermatuko delako bakarrik beharrezkoak direnean gertatzea (docker irudia eraikitzen duzun bakoitzean aldatzen ez badira behintzat). Cachetik Docker irudi bat berreraikitzea ia-ia berehalakoa izan daiteke era egokian eginez gero.
![Dockeren geruzak](/assets/images/docker_layers_schema.png) ![Dockeren geruzak](/assets/images/docker_layers_schema.png)
@ -13,7 +13,7 @@ Baita ere, garrantzitsua da jakitea operazio luzeak abiarazten dituzten aginduek
#### Ekidin une oro aldatzen den Avoid LABEL (etiketa) #### Ekidin une oro aldatzen den Avoid LABEL (etiketa)
Zure Dockerfilearen hasieran konpilazio zenbakia duen etiketaren bat badaukazu, cachea baliogabetua izango da konpilazio bakoitzean Zure Dockerfile fitxategiaren hasieran konpilazio zenbakia duen etiketaren bat badaukazu, cachea baliogabetua izango da konpilazio bakoitzean
```Dockerfile ```Dockerfile
#Fitxategiaren hasiea #Fitxategiaren hasiea
@ -22,7 +22,7 @@ FROM node:10.22.0-alpine3.11 as builder
# Ez egin hau hemen! # Ez egin hau hemen!
LABEL build_number="483" LABEL build_number="483"
#... Dockerfilearen gainontzeko guztia #... Dockerfile fitxategiaren gainontzeko guztia
``` ```
#### Eduki .dockerignore fitxategi egokia #### Eduki .dockerignore fitxategi egokia

View File

@ -12,7 +12,7 @@ Hauetako bat izan daiteke zure irtenbide egokiena:
1. Alderantzizko proxy bat erabiltzea: zure fitxategi estatikoak Node aplikazioaren ondoan kokatuko dira, eta Node aplikazioaren aurrean jartzen den proxy batek (adibidez, nginx) bideratuko ditu fitxategien karpeta estatikoari egindako eskaerak. 1. Alderantzizko proxy bat erabiltzea: zure fitxategi estatikoak Node aplikazioaren ondoan kokatuko dira, eta Node aplikazioaren aurrean jartzen den proxy batek (adibidez, nginx) bideratuko ditu fitxategien karpeta estatikoari egindako eskaerak.
Horrela, zure Node aplikazioa arduratzen da fitxategi estatikoak hedatzeaz, baina ez zerbitzatzeaz. Zure frontden/interfazeko lankideari asko gustatuko zaio antolaketa hau, frontden/interfazeko eskaerak galarazten baititu. Horrela, zure Node aplikazioa arduratzen da fitxategi estatikoak hedatzeaz, baina ez zerbitzatzeaz. Zure frontden/interfazeko lankideari asko gustatuko zaio antolaketa hau, frontden/interfazeko eskaerak galarazten baititu.
2. Hodeian biltegiratzea: zure fitxategi estatikoak EZ dira zure Node aplikazioaren edukiaren zati izango, eginkizun horretarako sortu diren AWS S3, Azure BlobStorage edo antzeko beste zerbitzu batzuetara igoko dira eta. Antolaketa hau erabiliz, zure Node aplikazioak ez du fitxategi estatikoak hedatzeko ardurarik izango, ezta horiek zerbitzatzeko ere; beraz, Node eta Frontend/interfazea erabat banatuta egongo dira, edonola ere talde desberdinek kudeatuta baitaude. 2. Hodeian biltegiratzea: zure fitxategi estatikoak EZ dira zure Node aplikazioaren edukiaren zati izango, eginkizun horretarako sortu diren AWS S3, Azure BlobStorage edo antzeko beste zerbitzu batzuetara igoko dira eta. Antolaketa hau erabiliz, zure Node aplikazioak ez du fitxategi estatikoak hedatzeko ardurarik izango, ezta horiek zerbitzatzeko ere; beraz, Node eta Frontenda/interfazea erabat banatuta egongo dira, edonola ere talde desberdinek kudeatuta baitaude.
<br/><br/> <br/><br/>

View File

@ -24,7 +24,7 @@ Ohiko segurtasun jardunbideen atalak esparru eta konbentzio askotan estandarizat
## ![✔] Ausazko kateak sortzea Node.js erabiliz ## ![✔] Ausazko kateak sortzea Node.js erabiliz
**TL; DR:** tokenetarako eta segurtasunaren menpekoak diren beste kasu batzuetarako sasi ausazko kateak sortzen dituen funtzio pertsonalizatua erabiltzea ez da, agian, uste bezain ausazkoa izango, eta, ondorioz, zure aplikazioa eraso kriptografikoen aurrean zaurgarria izan daditeke. Ausazko kate seguruak sortu behar dituzunean, erabili [`crypto.randomBytes(size, [callback])`](https://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback) funtzioa sistemak eskaintzen duen entropia baliatuz. **TL; DR:** tokenetarako (giltzak) eta segurtasunaren menpekoak diren beste kasu batzuetarako sasi ausazko kateak sortzen dituen funtzio pertsonalizatua erabiltzea ez da, agian, uste bezain ausazkoa izango, eta, ondorioz, zure aplikazioa eraso kriptografikoen aurrean zaurgarria izan daditeke. Ausazko kate seguruak sortu behar dituzunean, erabili [`crypto.randomBytes(size, [callback])`](https://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback) funtzioa sistemak eskaintzen duen entropia baliatuz.
**Bestela:** sasi ausazko kateak sortzen direnean kriptografikoki seguruak diren metodorik gabe, erasotzaileek sortutako emaitzak aurreikusi eta erreproduzi ditzakete, zure aplikazioa segurtasunik gabe geldituz. **Bestela:** sasi ausazko kateak sortzen direnean kriptografikoki seguruak diren metodorik gabe, erasotzaileek sortutako emaitzak aurreikusi eta erreproduzi ditzakete, zure aplikazioa segurtasunik gabe geldituz.
@ -35,7 +35,7 @@ Jarraian, OWASP proiektuko hainbat gomendio garrantzitsu zerrendatu ditugu
## ![✔] OWASP A2: hautsitako autentifikazioa ## ![✔] OWASP A2: hautsitako autentifikazioa
- Eskatu MFA / 2FA zerbitzu eta kontu garrantzitsuetarako - Eskatu MFA / 2FA zerbitzu eta kontu garrantzitsuetarako
- Biratu pasahitzak eta atzitzeko gakoak maiz, SSH gakoak/giltzak barne - Biratu pasahitzak eta atzitzeko gakoak maiz, SSH giltzak barne
- Aplikatu pasahitz politika sendoak, bai operazioetarako, bai aplikazioko erabiltzaileen kudeaketarako ([🔗 OWASP pasahitz gomendioa](https://www.owasp.org/index.php/Authentication_Cheat_Sheet#Implement_Proper_Password_Strength_Controls.22)) - Aplikatu pasahitz politika sendoak, bai operazioetarako, bai aplikazioko erabiltzaileen kudeaketarako ([🔗 OWASP pasahitz gomendioa](https://www.owasp.org/index.php/Authentication_Cheat_Sheet#Implement_Proper_Password_Strength_Controls.22))
- Ez bidali edo zabaldu zure aplikazioa lehenespenezko kredentzialekin, batez ere administratzaile erabiltzaileentzat edo menpeko dituzun kanpoko zerbitzuentzat - Ez bidali edo zabaldu zure aplikazioa lehenespenezko kredentzialekin, batez ere administratzaile erabiltzaileentzat edo menpeko dituzun kanpoko zerbitzuentzat
- Erabili OAuth, OpenID eta horiek bezalako autentifikazio metodo estandarrak, eta **saihestu** oinarrizko autentifikazioa - Erabili OAuth, OpenID eta horiek bezalako autentifikazio metodo estandarrak, eta **saihestu** oinarrizko autentifikazioa
@ -78,7 +78,7 @@ Jarraian, OWASP proiektuko hainbat gomendio garrantzitsu zerrendatu ditugu
- Eskaneatu dockeren irudiak ahulezia ezagunak aurkitzeko (Dockeren eta beste hornitzaile batzuen eskaneatze zerbitzuak erabiliz) - Eskaneatu dockeren irudiak ahulezia ezagunak aurkitzeko (Dockeren eta beste hornitzaile batzuen eskaneatze zerbitzuak erabiliz)
- Gaitu instantzia automatikoen (makina) adabakiak eta bertsio berritzea segurtasun adabakirik ez duten sistema eragileen bertsio zaharrak exekutatzea ekiditeko - Gaitu instantzia automatikoen (makina) adabakiak eta bertsio berritzea segurtasun adabakirik ez duten sistema eragileen bertsio zaharrak exekutatzea ekiditeko
- Eman erabiltzaileari 'id', 'sarbidea' eta 'eguneratu'ren tokenak, sarbide tokenak iraupen laburra izan dezan eta tokenarekin egunera dadin - Eman erabiltzaileari 'id', 'sarbidea' eta 'eguneratu'ren giltzak(tokenak), sarbide giltzak (tokenak) iraupen laburra izan dezan eta giltzarekin (tokenarekin) egunera dadin
- Erregistratu eta ikuskatu APIaren dei guztiak hodei eta kudeaketa zerbitzuetara (adibidez, nork ezabatu zuen S3 ontzia?) AWS CloudTrail bezalako zerbitzuak erabiliz - Erregistratu eta ikuskatu APIaren dei guztiak hodei eta kudeaketa zerbitzuetara (adibidez, nork ezabatu zuen S3 ontzia?) AWS CloudTrail bezalako zerbitzuak erabiliz
- Exekutatu zure hodei hornitzailearen segurtasun egiaztatzailea (adibidez, AWS segurtasun fidagarritasun aholkularia) - Exekutatu zure hodei hornitzailearen segurtasun egiaztatzailea (adibidez, AWS segurtasun fidagarritasun aholkularia)

View File

@ -2,12 +2,12 @@
### Azalpena ### Azalpena
Diseinuz, JWTak (JSON Web Tokens) guztiz aberri gabeak (stateless) dira; beraz, igorle batek baliozko token bat sinatzen duenean, token hori benetakoa dela egiaztatu ahal izango du aplikazioak. Horrek dakarren segurtasun arazoa da ihes egindako (leaked) tokena oraindik erabilgarria izango litzatekeela eta ezin daitekeela baliogabetu, sinadurak baliozkoa izaten jarraitzen duelako arazoak eragindako sinadura aplikazioak espero duenarekin bat datorren bitartean. Diseinuz, JWTak (JSON Web Tokens) guztiz aberrigabeak (stateless) dira; beraz, igorle batek baliozko giltza (token) bat sinatzen duenean, giltza hori benetakoa dela egiaztatu ahal izango du aplikazioak. Horrek dakarren segurtasun arazoa da ihes egindako (leaked) giltza oraindik erabilgarria izango litzatekeela eta ezin daitekeela baliogabetu, sinadurak baliozkoa izaten jarraitzen duelako arazoak eragindako sinadura aplikazioak espero duenarekin bat datorren bitartean.
Hori dela eta, JWT autentifikazioa erabiltzean, iraungitako edo baliogabetutako tokenen zerrenda beltza kudeatu beharko luke aplikazioak, tokenen bat baliogabetu behar den kasuetan, erabiltzailearen segurtasuna bermatzeko. Hori dela eta, JWT autentifikazioa erabiltzean, iraungitako edo baliogabetutako giltzen (tokenen) zerrenda beltza kudeatu beharko luke aplikazioak, giltzaren bat baliogabetu behar den kasuetan, erabiltzailearen segurtasuna bermatzeko.
### `express-jwt-blacklist` adibidea ### `express-jwt-blacklist` adibidea
Node.js proiektu batean Express-jwt zerrenda beltza (`express-jwt-blacklist`) egikaritzeko adibidea `express-jwt` erabiliz. Kontuan izan garrantzitsua ez dela express-jwt-zerrenda beltzaren biltegirako ezarpen lehenetsiak (memorian) erabiltzea, baizik eta Redis bezalako kanpoko biltegiren bat erabiltzea Node.js prozesu askotan tokenak baliogabetzeko. Node.js proiektu batean Express-jwt zerrenda beltza (`express-jwt-blacklist`) egikaritzeko adibidea `express-jwt` erabiliz. Kontuan izan garrantzitsua ez dela express-jwt-zerrenda beltzaren biltegirako ezarpen lehenetsiak (memorian) erabiltzea, baizik eta Redis bezalako kanpoko biltegiren bat erabiltzea Node.js prozesu askotan giltzak baliogabetzeko.
```javascript ```javascript
const jwt = require('express-jwt'); const jwt = require('express-jwt');

View File

@ -40,4 +40,4 @@ const unsafe = new RegExp('/(x+x+)+y/)');
### Beste blogari batzuek diotena ### Beste blogari batzuek diotena
[Adam Baldwin](https://www.safaribooksonline.com/blog/2014/03/28/using-eslint-plugins-node-js-app-security/)en blogetik hartua: [Adam Baldwin](https://www.safaribooksonline.com/blog/2014/03/28/using-eslint-plugins-node-js-app-security/)en blogetik hartua:
> Linting ez da zuriune, puntu eta koma edo eval enuntziatuei buruzko arau pedanteak betearazteko tresna soilik izan behar. ESLintek esparru indartsua eskaintzen du zure kodean arriskutsuak izan daitezkeen eredu ugari ezabatzeko (adierazpen erregularrak, sarrera balioztatzea, eta abar). Segurtasunaz arduratzen diren JavaScript garatzaileek kontuan hartu beharreko tresna indartsu berria eskaintzen duela uste dut. > Garbitzailea (Linting) ez da zuriune, puntu eta koma edo eval enuntziatuei buruzko arau pedanteak betearazteko tresna soilik izan behar. ESLintek esparru indartsua eskaintzen du zure kodean arriskutsuak izan daitezkeen eredu ugari ezabatzeko (adierazpen erregularrak, sarrera balioztatzea, eta abar). Segurtasunaz arduratzen diren JavaScript garatzaileek kontuan hartu beharreko tresna indartsu berria eskaintzen duela uste dut.

View File

@ -6,7 +6,7 @@
### Kode adibidea: zenbatu jarraian huts egin duten baimen saiakerak erabiltzaile izenaren eta IP bikotearen arabera, eta guztira izandako hutsegiteak IP helbidearen arabera. ### Kode adibidea: zenbatu jarraian huts egin duten baimen saiakerak erabiltzaile izenaren eta IP bikotearen arabera, eta guztira izandako hutsegiteak IP helbidearen arabera.
Erabili [rate-limiter-flexible](https://www.npmjs.com/package/rate-limiter-flexible) npm paketea. Erabili [abiadura-mugatzaile-malgua](https://www.npmjs.com/package/rate-limiter-flexible) (rate-limiter-flexible) npm paketea.
Sortu bi mugatzaile: Sortu bi mugatzaile:

View File

@ -2,7 +2,7 @@
### Azalpena ### Azalpena
Bidea erabiltzailea sartu ondoren sortua ote den kezka baduzu eta horregatik parametro gisa ezarri baduzu, saihestu bide hori erabiltzea beste fitxategi bat deitzeko / inportatzeko. Arau hori, oro har, edozein fitxategitara sartzeko erabil daiteke (hau da, `fs.readFile()`) edo erabiltzailea sartu ondoren sortutako aldagai dinamikoak dituen babestu beharreko beste baliabide batzuetara sartzeko. Eslint-plugin-security linterrak eredu horiek atzeman eta nahikoa goiz ohartaraz dezake. Bidea erabiltzailea sartu ondoren sortua ote den kezka baduzu eta horregatik parametro gisa ezarri baduzu, saihestu bide hori erabiltzea beste fitxategi bat deitzeko / inportatzeko. Arau hori, oro har, edozein fitxategitara sartzeko erabil daiteke (hau da, `fs.readFile()`) edo erabiltzailea sartu ondoren sortutako aldagai dinamikoak dituen babestu beharreko beste baliabide batzuetara sartzeko. Eslint-plugin-security garbitzaileak (linterrak) eredu horiek atzeman eta nahikoa goiz ohartaraz dezake.
### Kode adibidea ### Kode adibidea

View File

@ -6,7 +6,7 @@
Garapen iteratiboaren fluxuan, berregituratzea prozesu garrantzitsua da. "Kodearen usainak" (kodetze jardunbide okerrak) ezabatzen badituzu hala nola, Bikoiztutako Kodea, Funtzio Luzeak, Parametro Zerrenda Luzeak-, zure kodea hobetuko duzu, eta mantentzea erreztuko. Analisi estatikoko tresnak erabiltzeak kode usain horiek aurkitzen eta berregiturazio prozesu bat eraikitzen lagunduko dizu. Garapen iteratiboaren fluxuan, berregituratzea prozesu garrantzitsua da. "Kodearen usainak" (kodetze jardunbide okerrak) ezabatzen badituzu hala nola, Bikoiztutako Kodea, Funtzio Luzeak, Parametro Zerrenda Luzeak-, zure kodea hobetuko duzu, eta mantentzea erreztuko. Analisi estatikoko tresnak erabiltzeak kode usain horiek aurkitzen eta berregiturazio prozesu bat eraikitzen lagunduko dizu.
Tresna horiek zure IE eraikuntzari gehitzeak kalitatea egiaztatzeko prozesua automatizatzen lagunduko dizu. Zure IEak Sonar edo Code Climate bezalako tresnak integratzen baditu, eraikuntzak huts egingo du kode usainak atzematen baditu, eta egileari arazoa nola konpondu jakinaraziko dio. Analisi estatikoko tresna hauek ESLint bezalako tresnen osagarri izango dira. Linting tresna gehienak fitxategi bakoitzeko indentazioa eta ahaztutako puntu eta komak bezalako kode estiloetan zentratuko dira (hala ere, batzuek funtzio luzeak moduko kode usainak aurkituko dituzte); analisi estatikoko tresnak, berriz, fitxategi bakarreko edo anitzetako kode usainak aurkitzen saiatuko dira (bikoiztutako kodea, analisi konplexitatea, etab.) Tresna horiek zure IE eraikuntzari gehitzeak kalitatea egiaztatzeko prozesua automatizatzen lagunduko dizu. Zure IEak Sonar edo Code Climate bezalako tresnak integratzen baditu, eraikuntzak huts egingo du kode usainak atzematen baditu, eta egileari arazoa nola konpondu jakinaraziko dio. Analisi estatikoko tresna hauek ESLint bezalako tresnen osagarri izango dira. Garbiketa (linting) tresna gehienak fitxategi bakoitzeko indentazioa eta ahaztutako puntu eta komak bezalako kode estiloetan zentratuko dira (hala ere, batzuek funtzio luzeak moduko kode usainak aurkituko dituzte); analisi estatikoko tresnak, berriz, fitxategi bakarreko edo anitzetako kode usainak aurkitzen saiatuko dira (bikoiztutako kodea, analisi konplexitatea, etab.)
<br/><br/> <br/><br/>