From c08f9a1f487332e309e40229cf854b96fdd8609d Mon Sep 17 00:00:00 2001 From: BlueButterflies Date: Mon, 9 Jun 2025 17:05:51 +0200 Subject: [PATCH 1/2] change non-existent links to existing links in every file --- _articles/bg/code-of-conduct.md | 2 +- _articles/bg/finding-users.md | 2 +- _articles/bg/getting-paid.md | 2 +- _articles/bg/how-to-contribute.md | 2 +- _articles/code-of-conduct.md | 2 +- _articles/de/code-of-conduct.md | 2 +- _articles/de/getting-paid.md | 5 +++++ _articles/de/how-to-contribute.md | 6 +++--- _articles/el/code-of-conduct.md | 2 +- _articles/el/getting-paid.md | 3 ++- _articles/es/code-of-conduct.md | 2 +- _articles/es/getting-paid.md | 5 +++++ _articles/fa/code-of-conduct.md | 2 +- _articles/fa/getting-paid.md | 2 +- _articles/fr/code-of-conduct.md | 2 +- _articles/getting-paid.md | 2 +- _articles/hi/code-of-conduct.md | 2 +- _articles/hi/getting-paid.md | 3 ++- _articles/how-to-contribute.md | 2 +- _articles/hu/code-of-conduct.md | 2 +- _articles/hu/getting-paid.md | 2 +- _articles/id/code-of-conduct.md | 2 +- _articles/it/code-of-conduct.md | 2 +- _articles/it/getting-paid.md | 2 +- _articles/it/how-to-contribute.md | 2 +- _articles/ja/code-of-conduct.md | 2 +- _articles/ja/getting-paid.md | 2 +- _articles/ko/code-of-conduct.md | 2 +- _articles/ms/code-of-conduct.md | 2 +- _articles/ms/getting-paid.md | 2 +- _articles/nl/code-of-conduct.md | 2 +- _articles/nl/getting-paid.md | 2 +- _articles/pcm/code-of-conduct.md | 2 +- _articles/pcm/getting-paid.md | 2 +- _articles/pcm/how-to-contribute.md | 2 +- _articles/pl/code-of-conduct.md | 2 +- _articles/pl/getting-paid.md | 2 +- _articles/pt/code-of-conduct.md | 2 +- _articles/pt/getting-paid.md | 2 +- _articles/ro/code-of-conduct.md | 2 +- _articles/ru/code-of-conduct.md | 2 +- _articles/ru/getting-paid.md | 2 +- _articles/sw/code-of-conduct.md | 2 +- _articles/sw/getting-paid.md | 2 +- _articles/sw/how-to-contribute.md | 2 +- _articles/ta/code-of-conduct.md | 2 +- _articles/tr/code-of-conduct.md | 2 +- _articles/tr/getting-paid.md | 2 +- _articles/zh-hans/code-of-conduct.md | 2 +- _articles/zh-hant/code-of-conduct.md | 2 +- 50 files changed, 62 insertions(+), 50 deletions(-) diff --git a/_articles/bg/code-of-conduct.md b/_articles/bg/code-of-conduct.md index 22af32a478d..dd04b5e2c53 100644 --- a/_articles/bg/code-of-conduct.md +++ b/_articles/bg/code-of-conduct.md @@ -40,7 +40,7 @@ related: diff --git a/_articles/bg/finding-users.md b/_articles/bg/finding-users.md index 8ea56b9d206..c6a933897cc 100644 --- a/_articles/bg/finding-users.md +++ b/_articles/bg/finding-users.md @@ -28,7 +28,7 @@ related: За по-задълбочено потапяне в съобщенията вижте упражнението на Mozilla ["Личности и пътеки"](https://mozillascience.github.io/working-open-workshop/personas_pathways/) за разработване на потребителски персони. -## Help people find and follow your project +## Помогнете на хората да намерят и следват вашия проект diff --git a/_articles/de/getting-paid.md b/_articles/de/getting-paid.md index 9c290107563..c8049d5d1ce 100644 --- a/_articles/de/getting-paid.md +++ b/_articles/de/getting-paid.md @@ -119,6 +119,11 @@ Außerdem können Sie versuchen, abhängig von Ihren persönlichen Umständen, s * @gaearon finanzierte seine Arbeit an [Redux](https://github.com/reactjs/redux) mittels einer [Patreon-Crowdfunding-Kampagne](https://redux.js.org/) * @andrewgodwin finanzierte Arbeit an Djangos Schemamigrations [mittels einer Kickstarter-Kampagne](https://www.kickstarter.com/projects/andrewgodwin/schema-migrations-for-django) +Und schließlich zahlen Open-Source-Projekte manchmal Prämien für Probleme, bei denen Sie möglicherweise mithelfen möchten. + +* @ConnorChristie konnte für seine [Hilfe](https://web.archive.org/web/20181030123412/https://webcache.googleusercontent.com/search?strip=1&q=cache:https%3A%2F%2Fgithub.com%2FMARKETProtocol%2FMARKET.js%2Fissues%2F14) bei der Arbeit an der JavaScript-Bibliothek von @MARKETProtocol [über Gitcoin-Prämie](https://gitcoin.co/) bezahlt werden. +* @mamiM hat japanische Übersetzungen für @MetaMask angefertigt, nachdem [die Veröffentlichung vom Bounties Network finanziert wurde](https://community.openhab.org/t/introducing-bountysource-for-funded-development/32879). + ## Geldquellen für Ihr Projekt auftun Abgesehen von Vereinbarungen für einzelne Projektteilnehmer\*innen, sammeln Projekte manchmal Geld von Unternehmen, Einzelpersonen oder anderen ein, um die laufende Arbeit zu finanzieren. diff --git a/_articles/de/how-to-contribute.md b/_articles/de/how-to-contribute.md index fc1669644f6..ebb0ca9e081 100644 --- a/_articles/de/how-to-contribute.md +++ b/_articles/de/how-to-contribute.md @@ -95,11 +95,11 @@ Auch wenn Sie gerne Code schreiben, gibt es vielleicht bessere Möglichkeiten, s ### Schreiben Sie gerne? -* Erstellen und verbessern Sie die Projektdokumentation +* Erstellen und verbessern Sie die Projektdokumentation, [wie es @CBID2 für die OpenSauced-Dokumentation getan hat](https://github.com/open-sauced/docs/pull/151). * Erstellen Sie eine Übersicht von Anwendungsbeispielen, welche die Verwendungsmöglichkeiten der Software zeigen -* Starten Sie einen Newsletter für das Projekt oder kuratieren Sie Highlights aus der Mailingliste +* Starten Sie einen Newsletter über das Projekt oder wählen Sie Highlights aus der Mailingliste aus, [wie es @opensauced für sein Produkt getan hat](https://opensauced.pizza/blog) * Schreiben Sie Tutorials für das Projekt, so [wie die Mitwirkenden von PyPA](https://packaging.python.org/) -* Übersetzen Sie die Projektdokumentation +* Schreiben Sie eine Übersetzung für die Projektdokumentation, [wie @frontendwizard es für die Anweisungen zur CSS Flexbox-Challenge auf freeCodeCamp getan hat](https://github.com/freeCodeCamp/freeCodeCamp/pull/19077) diff --git a/_articles/nl/getting-paid.md b/_articles/nl/getting-paid.md index 2ab0cda97c1..f70c0e94b08 100644 --- a/_articles/nl/getting-paid.md +++ b/_articles/nl/getting-paid.md @@ -115,7 +115,7 @@ Afhankelijk van uw persoonlijke omstandigheden kunt u proberen om zelfstandig ge Ten slotte geven open source-projecten soms premies voor problemen waarmee u zou kunnen helpen. * @ConnorChristie kon betaald worden voor [helpen](https://web.archive.org/web/20181030123412/https://webcache.googleusercontent.com/search?strip=1&q=cache:https%3A%2F%2Fgithub.com%2FMARKETProtocol%2FMARKET.js%2Fissues%2F14) @MARKETProtocol werken aan hun JavaScript-bibliotheek [via een premie op gitcoin](https://gitcoin.co/). -* @mamiM deed Japanse vertalingen voor @MetaMask nadat de [kwestie werd gefinancierd op Bounties Network](https://explorer.bounties.network/bounty/134). +* @mamiM deed Japanse vertalingen voor @MetaMask nadat de [kwestie werd gefinancierd op Bounties Network](https://community.openhab.org/t/introducing-bountysource-for-funded-development/32879). ## Financiering vinden voor uw project diff --git a/_articles/pcm/code-of-conduct.md b/_articles/pcm/code-of-conduct.md index 93287322020..47bf20220cb 100644 --- a/_articles/pcm/code-of-conduct.md +++ b/_articles/pcm/code-of-conduct.md @@ -40,7 +40,7 @@ Put one CODE_OF_CONDUCT file for your project's main directory, and make sure sa diff --git a/_articles/pcm/getting-paid.md b/_articles/pcm/getting-paid.md index 352f45a9528..d56ec3e7e0d 100644 --- a/_articles/pcm/getting-paid.md +++ b/_articles/pcm/getting-paid.md @@ -100,7 +100,7 @@ Depending on your personal circumstances, you can try raising money independentl Finally, sometimes open source projects put bounties on issues that you might consider helping with. * @ConnorChristie was able to get paid for [helping](https://web.archive.org/web/20181030123412/https://webcache.googleusercontent.com/search?strip=1&q=cache:https%3A%2F%2Fgithub.com%2FMARKETProtocol%2FMARKET.js%2Fissues%2F14) @MARKETProtocol work on their JavaScript library [through a bounty on gitcoin](https://gitcoin.co/). -* @mamiM did Japanese translations for @MetaMask after the [issue was funded on Bounties Network](https://explorer.bounties.network/bounty/134). +* @mamiM did Japanese translations for @MetaMask after the [issue was funded on Bounties Network](https://community.openhab.org/t/introducing-bountysource-for-funded-development/32879). ## Finding funding for your project diff --git a/_articles/pcm/how-to-contribute.md b/_articles/pcm/how-to-contribute.md index a44f4d53d1d..5b6ececde25 100644 --- a/_articles/pcm/how-to-contribute.md +++ b/_articles/pcm/how-to-contribute.md @@ -89,7 +89,7 @@ Even if you like to write code, other types of contributions are a great way to * Write and improve the project's documentation, [like @CBID2 did for OpenSauced's documentation](https://github.com/open-sauced/docs/pull/151) * Curate a folder of examples showing how the project is used -* Start a newsletter for the project, or curate highlights from the mailing list, [like @opensauced did for their product](https://news.opensauced.pizza/about/) +* Start a newsletter for the project, or curate highlights from the mailing list, [like @opensauced did for their product]( https://opensauced.pizza/blog) * Write tutorials for the project, [like PyPA's contributors did](https://packaging.python.org/) * Write a translation for the project's documentation, [like @frontendwizard did for the instructions for freeCodeCamp's CSS Flexbox challenge](https://github.com/freeCodeCamp/freeCodeCamp/pull/19077) diff --git a/_articles/pl/code-of-conduct.md b/_articles/pl/code-of-conduct.md index 781994c4a09..1a674c196a5 100644 --- a/_articles/pl/code-of-conduct.md +++ b/_articles/pl/code-of-conduct.md @@ -40,7 +40,7 @@ Umieść plik CODE_OF_CONDUCT w katalogu głównym projektu i uczyń go widoczny diff --git a/_articles/pl/getting-paid.md b/_articles/pl/getting-paid.md index a805d787bd7..0b051c3a22a 100644 --- a/_articles/pl/getting-paid.md +++ b/_articles/pl/getting-paid.md @@ -110,7 +110,7 @@ W zależności od osobistych okoliczności możesz spróbować samodzielnie zebr Wreszcie, czasami niektóre projekty open source nagradzają za rozwiązywanie danych problemów. * @ConnorChristie był w stanie otrzymać wynagrodzenie za [pomoc](https://web.archive.org/web/20181030123412/https://webcache.googleusercontent.com/search?strip=1&q=cache:https%3A%2F%2Fgithub.com%2FMARKETProtocol%2FMARKET.js%2Fissues%2F14) @MARKETProtocol pracował nad biblioteką JavaScript [poprzez nagrodę za gitcoin](https://gitcoin.co/). -* @mamiM zrobił japońskie tłumaczenia dla @MetaMask po tym, jak [problem został sfinansowany przez Bounties Network](https://explorer.bounties.network/bounty/134). +* @mamiM zrobił japońskie tłumaczenia dla @MetaMask po tym, jak [problem został sfinansowany przez Bounties Network](https://community.openhab.org/t/introducing-bountysource-for-funded-development/32879). ## Znajdowanie funduszy na swój projekt diff --git a/_articles/pt/code-of-conduct.md b/_articles/pt/code-of-conduct.md index bc54236b47a..8ef4ed84e09 100644 --- a/_articles/pt/code-of-conduct.md +++ b/_articles/pt/code-of-conduct.md @@ -40,7 +40,7 @@ Coloque um arquivo CODE_OF_CONDUCT no diretório raiz do seu projeto, e faça-o diff --git a/_articles/pt/getting-paid.md b/_articles/pt/getting-paid.md index a234b1ca7c6..c3a1e9f4128 100644 --- a/_articles/pt/getting-paid.md +++ b/_articles/pt/getting-paid.md @@ -100,7 +100,7 @@ Dependendo de suas circunstâncias pessoais, você pode tentar conseguir dinheir Finalmente, as vezes, projetos open source põem recompensas em issues que você pode considerar ajudar a resolver. * @ConnorChristie conseguiu ser pago por [ajudar](https://web.archive.org/web/20181030123412/https://webcache.googleusercontent.com/search?strip=1&q=cache:https%3A%2F%2Fgithub.com%2FMARKETProtocol%2FMARKET.js%2Fissues%2F14) @MARKETProtocol a trabalhar em sua biblioteca JavaScript [através de uma recompensa em gitcoin](https://gitcoin.co/). -* @mamiM fez traduções para o Japonês para @MetaMask após a [issue ser financiada na Bounties Network](https://explorer.bounties.network/bounty/134). +* @mamiM fez traduções para o Japonês para @MetaMask após a [issue ser financiada na Bounties Network](https://community.openhab.org/t/introducing-bountysource-for-funded-development/32879). ## Encontrando financiamento para o seu projeto diff --git a/_articles/ro/code-of-conduct.md b/_articles/ro/code-of-conduct.md index 87ed2fd92a3..a03feabff15 100644 --- a/_articles/ro/code-of-conduct.md +++ b/_articles/ro/code-of-conduct.md @@ -47,7 +47,7 @@ Amplasează un fișier CODE_OF_CONDUCT în directorul rădăcină al proiectului

-— [Ada Initiative](https://webcache.googleusercontent.com/search?q=cache:YfqdTk5H9ikJ:https://adainitiative.org/2014/02/18/howto-design-a-code-of-conduct-for-your-community) +— [Ada Initiative](https://adainitiative.org/)

diff --git a/_articles/ru/code-of-conduct.md b/_articles/ru/code-of-conduct.md index bbd32c5f52c..35f36935314 100644 --- a/_articles/ru/code-of-conduct.md +++ b/_articles/ru/code-of-conduct.md @@ -40,7 +40,7 @@ related: diff --git a/_articles/ru/getting-paid.md b/_articles/ru/getting-paid.md index c8bcb187080..a248fd1c8b2 100644 --- a/_articles/ru/getting-paid.md +++ b/_articles/ru/getting-paid.md @@ -99,7 +99,7 @@ related: Иногда открытые проекты размещают вознаграждение за задачи, над которыми вы могли бы поработать. * @ConnorChristie получал оплату, [помогая](https://web.archive.org/web/20181030123412/https://webcache.googleusercontent.com/search?strip=1&q=cache:https%3A%2F%2Fgithub.com%2FMARKETProtocol%2FMARKET.js%2Fissues%2F14) @MARKETProtocol над иж JavaScript библиотекой через [gitcoin.co](https://gitcoin.co/). -* @mamiM сделал перевод на японский @MetaMask за вознаграждение на [Bounties Network](https://explorer.bounties.network/bounty/134). +* @mamiM сделал перевод на японский @MetaMask за вознаграждение на [Bounties Network](https://community.openhab.org/t/introducing-bountysource-for-funded-development/32879). ## Поиск финансирования для вашего проекта diff --git a/_articles/sw/code-of-conduct.md b/_articles/sw/code-of-conduct.md index 986e80d6e3c..22e36896d61 100644 --- a/_articles/sw/code-of-conduct.md +++ b/_articles/sw/code-of-conduct.md @@ -40,7 +40,7 @@ Weka faili ya CODE_OF_CONDUCT katika saraka ya mzizi ya mradi wako, na uifanye i diff --git a/_articles/sw/getting-paid.md b/_articles/sw/getting-paid.md index 0448cda6587..2f6009015b0 100644 --- a/_articles/sw/getting-paid.md +++ b/_articles/sw/getting-paid.md @@ -100,7 +100,7 @@ Kulingana na hali zako binafsi, unaweza kujaribu kukusanya fedha kwa kujitegemea Hatimaye, wakati mwingine miradi ya open source huweka zawadi kwenye masuala ambayo unaweza kufikiria kusaidia nayo. * @ConnorChristie alifaulu kulipwa kwa [kusaidia](https://web.archive.org/web/20181030123412/https://webcache.googleusercontent.com/search?strip=1&q=cache:https%3A%2F%2Fgithub.com%2FMARKETProtocol%2FMARKET.js%2Fissues%2F14) @MARKETProtocol kufanya kazi kwenye maktaba yao ya JavaScript [kupitia zawadi kwenye gitcoin](https://gitcoin.co/). -* @mamiM alifanya tafsiri za Kijapani kwa @MetaMask baada ya [suala kufadhiliwa kwenye Bounties Network](https://explorer.bounties.network/bounty/134). +* @mamiM alifanya tafsiri za Kijapani kwa @MetaMask baada ya [suala kufadhiliwa kwenye Bounties Network](https://community.openhab.org/t/introducing-bountysource-for-funded-development/32879). ## Kutafuta ufadhili kwa mradi wako diff --git a/_articles/sw/how-to-contribute.md b/_articles/sw/how-to-contribute.md index 3dfbcb8aa7f..1c976c14cf6 100644 --- a/_articles/sw/how-to-contribute.md +++ b/_articles/sw/how-to-contribute.md @@ -89,7 +89,7 @@ Hata kama ungependa kuandika msimbo, aina nyingine za michango ni njia nzuri ya * Andika na uboreshe nyaraka za mradi, [kama @CBID2 alivyofanya kwa nyaraka za OpenSauced](https://github.com/open-sauced/docs/pull/151) * Andaa folda ya mifano inayoonyesha jinsi mradi unavyotumika -* Anzisha jarida la mradi, au kusanya mambo muhimu kutoka kwenye orodha ya barua, [kama @opensauced alivyofanya kwa bidhaa yao](https://news.opensauced.pizza/about/) +* Anzisha jarida la mradi, au kusanya mambo muhimu kutoka kwenye orodha ya barua, [kama @opensauced alivyofanya kwa bidhaa yao](https://opensauced.pizza/blog) * Andika mafunzo kwa mradi, [kama wachangiaji wa PyPA walivyofanya](https://packaging.python.org/) * Andika tafsiri ya nyaraka za mradi, [kama @frontendwizard alivyofanya kwa maelekezo ya changamoto ya CSS Flexbox ya freeCodeCamp](https://github.com/freeCodeCamp/freeCodeCamp/pull/19077) diff --git a/_articles/ta/code-of-conduct.md b/_articles/ta/code-of-conduct.md index 9908515abf3..07403fa5928 100644 --- a/_articles/ta/code-of-conduct.md +++ b/_articles/ta/code-of-conduct.md @@ -40,7 +40,7 @@ related: diff --git a/_articles/tr/code-of-conduct.md b/_articles/tr/code-of-conduct.md index a543e8a20a9..50ebb770c31 100644 --- a/_articles/tr/code-of-conduct.md +++ b/_articles/tr/code-of-conduct.md @@ -40,7 +40,7 @@ CODE_OF_CONDUCT dosyasını projenizin kök dizinine yerleştirin ve CONTRIBUTIN diff --git a/_articles/tr/getting-paid.md b/_articles/tr/getting-paid.md index b5d5cd928fb..a78bd4ca53a 100644 --- a/_articles/tr/getting-paid.md +++ b/_articles/tr/getting-paid.md @@ -100,7 +100,7 @@ Kişisel durumunuza bağlı olarak, açık kaynaklı işinize para yatırmak iç Son olarak, bazen açık kaynaklı projeler, yardım etmeyi düşündüğünüz meselelere güçlükler getirir. * @ConnorChristie, @MARKETProtocol'un JavaScript paketlerinde [yardımcı olarak](https://web.archive.org/web/20181030123412/https://webcache.googleusercontent.com/search?strip=1&q=cache:https%3A%2F%2Fgithub.com%2FMARKETProtocol%2FMARKET.js%2Fissues%2F14) gitcoin'deki bir [ödülle{/a2} para kazanabildi.](https://gitcoin.co/) -* @mamiM, [sorun Bounties Network'te finanse](https://explorer.bounties.network/bounty/134) edildikten sonra @MetaMask için Japonca çeviriler yaptı. +* @mamiM, [sorun Bounties Network'te finanse](https://community.openhab.org/t/introducing-bountysource-for-funded-development/32879) edildikten sonra @MetaMask için Japonca çeviriler yaptı. ## Projeniz için finansman bulma diff --git a/_articles/zh-hans/code-of-conduct.md b/_articles/zh-hans/code-of-conduct.md index 4d0478080cb..4fd5c633937 100644 --- a/_articles/zh-hans/code-of-conduct.md +++ b/_articles/zh-hans/code-of-conduct.md @@ -41,7 +41,7 @@ redirect_from: /zh-cn/code-of-conduct/ diff --git a/_articles/zh-hant/code-of-conduct.md b/_articles/zh-hant/code-of-conduct.md index d92260bbebf..1ef30172497 100644 --- a/_articles/zh-hant/code-of-conduct.md +++ b/_articles/zh-hant/code-of-conduct.md @@ -41,7 +41,7 @@ redirect_from: /zh-tw/code-of-conduct/ From d3bca3f76153b18f8a48b9787c2f5efdc815ca02 Mon Sep 17 00:00:00 2001 From: BlueButterflies Date: Mon, 9 Jun 2025 17:56:46 +0200 Subject: [PATCH 2/2] add security bes practices for your project md file in "it" file --- ...ecurity-best-practices-for-your-project.md | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 _articles/it/security-best-practices-for-your-project.md diff --git a/_articles/it/security-best-practices-for-your-project.md b/_articles/it/security-best-practices-for-your-project.md new file mode 100644 index 00000000000..95df5dbf307 --- /dev/null +++ b/_articles/it/security-best-practices-for-your-project.md @@ -0,0 +1,84 @@ +--- +lang: it +untranslated: true +title: Le migliori pratiche di sicurezza per il tuo progetto +description: Rafforza il futuro del tuo progetto creando fiducia tramite pratiche di sicurezza essenziali, dall'MFA e dalla scansione del codice alla gestione sicura delle dipendenze e alla segnalazione privata delle vulnerabilità. +class: security-best-practices +order: -1 +image: /assets/images/cards/security-best-practices.png +--- + +A parte bug e nuove funzionalità, la longevità di un progetto dipende non solo dalla sua utilità, ma anche dalla fiducia che guadagna dai suoi utenti. Misure di sicurezza efficaci sono fondamentali per mantenere viva questa fiducia. Ecco alcune azioni importanti che puoi intraprendere per migliorare significativamente la sicurezza del tuo progetto. + +## Assicurati che tutti i collaboratori con privilegi abbiano abilitato l'autenticazione a più fattori (MFA) + +### Un malintenzionato che riesca a impersonare un collaboratore con privilegi nel tuo progetto causerà danni catastrofici. + +Una volta ottenuto l'accesso con privilegi, questo malintenzionato può modificare il tuo codice per eseguire azioni indesiderate (ad esempio, estrarre criptovalute), oppure può distribuire malware all'infrastruttura dei tuoi utenti, o ancora può accedere a repository di codice privati ​​per esfiltrare proprietà intellettuale e dati sensibili, incluse le credenziali di accesso ad altri servizi. + +L'MFA fornisce un ulteriore livello di sicurezza contro il furto di account. Una volta abilitata, devi accedere con il tuo nome utente e password e fornire un'altra forma di autenticazione che solo tu conosci o a cui hai accesso. + +## Proteggi il tuo codice come parte del tuo flusso di lavoro di sviluppo + +### Le vulnerabilità di sicurezza nel tuo codice sono più economiche da risolvere se rilevate nelle prime fasi del processo rispetto a quando vengono utilizzate in produzione. + +Utilizza uno strumento SAST (Static Application Security Testing) per rilevare le vulnerabilità di sicurezza nel tuo codice. Questi strumenti operano a livello di codice e non necessitano di un ambiente di esecuzione, quindi possono essere eseguiti nelle prime fasi del processo e possono essere integrati perfettamente nel tuo consueto flusso di lavoro di sviluppo, durante la build o durante le fasi di revisione del codice. + +È come avere un esperto qualificato che esamina il tuo repository di codice, aiutandoti a trovare vulnerabilità di sicurezza comuni che potrebbero nascondersi alla vista durante la scrittura del codice. + +Come scegliere il tuo strumento SAST? +Verifica la licenza: alcuni strumenti sono gratuiti per i progetti open source. Ad esempio, GitHub CodeQL o SemGrep. +Verifica la copertura per i tuoi linguaggi + +* Selezionane uno che si integri facilmente con gli strumenti che già utilizzi e con il tuo processo esistente. Ad esempio, è meglio se gli avvisi sono disponibili come parte del processo e dello strumento di revisione del codice esistenti, piuttosto che dover ricorrere a un altro strumento per visualizzarli. +* Attenzione ai falsi positivi! Non vorrai che lo strumento ti rallenti senza motivo! +* Controlla le funzionalità: alcuni strumenti sono molto potenti e possono eseguire il taint tracking (ad esempio: GitHub CodeQL), alcuni propongono suggerimenti di correzione generati dall'intelligenza artificiale, altri semplificano la scrittura di query personalizzate (ad esempio: SemGrep). + +## Non condividere i tuoi segreti + +### Dati sensibili, come chiavi API, token e password, a volte possono essere accidentalmente inseriti nel tuo repository. + +Immagina questo scenario: sei il responsabile della manutenzione di un popolare progetto open source con contributi di sviluppatori da tutto il mondo. Un giorno, un collaboratore inserisce inconsapevolmente nel repository alcune chiavi API di un servizio di terze parti. Giorni dopo, qualcuno trova queste chiavi e le usa per accedere al servizio senza autorizzazione. Il servizio viene compromesso, gli utenti del tuo progetto subiscono tempi di inattività e la reputazione del tuo progetto ne risente. Come responsabile della manutenzione, ti trovi ora ad affrontare il difficile compito di revocare i segreti compromessi, indagare sulle azioni dannose che l'aggressore potrebbe aver compiuto con questi segreti, avvisare gli utenti interessati e implementare le correzioni. + +Per prevenire tali incidenti, esistono soluzioni di "scansione dei segreti" che ti aiutano a rilevare tali segreti nel tuo codice. Alcuni strumenti come GitHub Secret Scanning e Trufflehog di Truffle Security possono impedirti di inviarli a branch remote, e alcuni strumenti revocheranno automaticamente alcuni segreti per te. + +## Controlla e aggiorna le tue dipendenze + +### Le dipendenze nel tuo progetto possono presentare vulnerabilità che ne compromettono la sicurezza. Mantenere aggiornate manualmente le dipendenze può essere un'attività che richiede molto tempo. + +Immaginate questo: un progetto costruito sulle solide fondamenta di una libreria ampiamente utilizzata. La libreria in seguito rileva un grave problema di sicurezza, ma le persone che hanno sviluppato l'applicazione utilizzandola non ne sono a conoscenza. I dati sensibili degli utenti rimangono esposti quando un aggressore sfrutta questa vulnerabilità, piombando per impossessarsene. Questo non è un caso teorico. Questo è esattamente quello che è successo a Equifax nel 2017: non sono riusciti ad aggiornare la loro dipendenza Apache Struts dopo la notifica del rilevamento di una grave vulnerabilità. La vulnerabilità è stata sfruttata e la famigerata violazione di Equifax ha colpito i dati di 144 milioni di utenti. + +Per prevenire tali scenari, strumenti di analisi della composizione del software (SCA) come Dependabot e Renovate controllano automaticamente le dipendenze alla ricerca di vulnerabilità note pubblicate in database pubblici come NVD o GitHub Advisory Database, e quindi creano richieste pull per aggiornarle a versioni sicure. Rimanere aggiornati con le ultime versioni sicure delle dipendenze protegge il progetto da potenziali rischi. + +## Evita modifiche indesiderate con i branch protetti + +### L'accesso illimitato ai branch principali può portare a modifiche accidentali o dannose che potrebbero introdurre vulnerabilità o compromettere la stabilità del progetto. + +Un nuovo collaboratore ottiene l'accesso in scrittura al branch principale e invia accidentalmente modifiche che non sono state testate. In questo modo, viene scoperta una grave falla di sicurezza, grazie alle ultime modifiche. Per prevenire tali problemi, le regole di protezione dei branch garantiscono che le modifiche non possano essere inviate o unite a branch importanti senza prima essere sottoposte a revisione e aver superato i controlli di stato specificati. Questa misura aggiuntiva garantisce maggiore sicurezza e un'elevata qualità ogni volta. + +## Imposta un meccanismo di acquisizione per la segnalazione delle vulnerabilità + +### È buona norma semplificare la segnalazione dei bug da parte degli utenti, ma la domanda fondamentale è: quando un bug ha un impatto sulla sicurezza, come possono segnalarvelo in modo sicuro senza rendervi un bersaglio per hacker malintenzionati? + +Immagina questo: un ricercatore di sicurezza scopre una vulnerabilità nel tuo progetto ma non trova un modo chiaro e sicuro per segnalarla. Senza una procedura specifica, potrebbe creare un problema pubblico o discuterne apertamente sui social media. Anche se è ben intenzionato e offre una soluzione, se lo fa con una pull request pubblica, altri la vedranno prima che venga integrata! Questa divulgazione pubblica esporrà la vulnerabilità a malintenzionati prima che tu abbia la possibilità di risolverla, portando potenzialmente a un exploit zero-day che attaccherà il tuo progetto e i suoi utenti. + +### Policy di sicurezza + +Per evitare questo problema, pubblica una policy di sicurezza. Una policy di sicurezza, definita in un fil `SECURITY.md`, descrive in dettaglio i passaggi per la segnalazione di problemi di sicurezza, la creazione di un processo trasparente per la divulgazione coordinata e la definizione delle responsabilità del team di progetto per la gestione dei problemi segnalati. Questa policy di sicurezza può essere semplice come "Si prega di non pubblicare dettagli in un problema pubblico o in una PR, inviare un'email privata a security@example.com", ma può anche contenere altri dettagli, come ad esempio i tempi previsti per ricevere una risposta da parte del team. Qualsiasi informazione che possa contribuire all'efficacia e all'efficienza del processo di divulgazione. + +### Segnalazione di vulnerabilità private + +Su alcune piattaforme, è possibile semplificare e rafforzare il processo di gestione delle vulnerabilità, dall'acquisizione alla trasmissione, con problemi privati. Su GitLab, questo è possibile con problemi privati. Su GitHub, questo è chiamato segnalazione di vulnerabilità private (PVR). La PVR consente ai manutentori di ricevere e gestire le segnalazioni di vulnerabilità, il tutto all'interno della piattaforma GitHub. GitHub creerà automaticamente un fork privato per scrivere le correzioni e una bozza di avviso di sicurezza. Tutto questo rimane confidenziale finché non deciderai di rivelare i problemi e rilasciare le correzioni. Per chiudere il cerchio, verranno pubblicati degli avvisi di sicurezza che informeranno e proteggeranno tutti i tuoi utenti tramite il loro strumento SCA. + +## Conclusione: pochi passaggi per te, un enorme miglioramento per i tuoi utenti + +Questi pochi passaggi potrebbero sembrarti facili o basilari, ma contribuiscono notevolmente a rendere il tuo progetto più sicuro per i suoi utenti, perché forniranno protezione dai problemi più comuni. + +## Collaboratori + +### Un ringraziamento speciale a tutti i responsabili della manutenzione che hanno condiviso con noi le loro esperienze e i loro suggerimenti per questa guida! + +Questa guida è stata scritta da [@nanzggits](https://github.com/nanzggits) e [@xcorail](https://github.com/xcorail) con il contributo di: + +[@JLLeitschuh](https://github.com/JLLeitschuh) +[@intrigus-lgtm](https://github.com/intrigus-lgtm) e molti altri!