PolicyChecks

Projetos que seguem as melhores práticas abaixo podem se autocertificar voluntariamente e mostrar que alcançaram um selo de melhores práticas da Open Source Security Foundation (OpenSSF).

Não existe um conjunto de práticas que possa garantir que o software nunca terá defeitos ou vulnerabilidades; mesmo métodos formais podem falhar se as especificações ou suposições estiverem erradas. Nem existe qualquer conjunto de práticas que possa garantir que um projeto sustentará uma comunidade de desenvolvimento saudável e bem-funcionada. No entanto, seguir as melhores práticas pode ajudar a melhorar os resultados dos projetos. Por exemplo, algumas práticas permitem revisão multipessoal antes do lançamento, o que pode ajudar a encontrar vulnerabilidades técnicas difíceis de encontrar e ajudar a construir confiança e desejo de interação repetida entre desenvolvedores de diferentes empresas. Para ganhar um selo, todos os critérios DEVE e NÃO DEVE devem ser atendidos, todos os critérios DEVERIA devem ser atendidos OU não atendidos com justificativa, e todos os critérios SUGERIDO devem ser atendidos OU não atendidos (queremos que sejam considerados pelo menos). Se você quiser inserir texto de justificativa como um comentário genérico, em vez de ser uma justificativa de que a situação é aceitável, inicie o bloco de texto com '//' seguido de um espaço. Feedback é bem-vindo via site do GitHub como questões ou pull requests Há também uma lista de discussão para discussão geral.

Fornecemos com prazer as informações em vários idiomas, no entanto, se houver qualquer conflito ou inconsistência entre as traduções, a versão em inglês é a versão autoritativa.
Se este é o seu projeto, por favor mostre o status do seu selo básico na página do seu projeto! O status do selo básico se parece com isto: O nível do selo básico para o projeto 14356 é baseline-1 Aqui está como incorporar o selo básico:
Você pode mostrar o status do seu selo básico incorporando isto no seu arquivo markdown:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/14356/baseline)](https://www.bestpractices.dev/projects/14356)
ou incorporando isto no seu HTML:
<a href="https://www.bestpractices.dev/projects/14356"><img src="https://www.bestpractices.dev/projects/14356/baseline"></a>


Estes são os critérios de Nível Básico 1. Estes são critérios da versão v2026.08.28.

Baseline Series: Nível Básico 1 Nível Básico 2 Nível Básico 3

        

 Fundamentos

  • Geral

    Observe que outros projetos podem usar o mesmo nome.

    A badge service backed by a GitHub app that requests repository Administration: Read permissions, and so is able to report on a repository's settings, providing a convenient way for maintainers to demonstrate publicly that best practices are enforced as policies at the repo configuration level

    Use o formato de expressão de licença SPDX; exemplos incluem "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "GPL-2.0+", "LGPL-3.0+", "MIT" e "(BSD-2-Clause OR Ruby)". Não inclua aspas simples ou aspas duplas.
    Se houver mais de uma linguagem, liste-as como valores separados por vírgula (espaços opcionais) e ordene-as da mais usada para a menos usada. Se houver uma longa lista, liste pelo menos as três primeiras mais comuns. Se não houver linguagem (por exemplo, este é um projeto apenas de documentação ou apenas de teste), use o caractere único "-". Use uma capitalização convencional para cada linguagem, por exemplo, "JavaScript".
    O Common Platform Enumeration (CPE) é um esquema de nomenclatura estruturado para sistemas de tecnologia da informação, software e pacotes. Ele é usado em vários sistemas e bancos de dados ao relatar vulnerabilidades.

 Controles 24/24 ●

  • Controles


    Quando um usuário tentar ler ou modificar um recurso sensível no repositório autorizado do projeto, o sistema DEVE exigir que o usuário complete um processo de autenticação multifator. [OSPS-AC-01.01]
    Imponha autenticação multifator para o sistema de controle de versão do projeto, exigindo que os colaboradores forneçam uma segunda forma de autenticação ao acessar dados sensíveis ou modificar configurações do repositório. Passkeys são aceitáveis para este controle.

    The reponomics organization requires two-factor authentication for all members (GET /orgs/reponomics returns two_factor_requirement_enabled: true). The authoritative repository github.com/reponomics/PolicyChecks is owned by that organization, so every account able to read or modify sensitive resources must complete multi-factor authentication. The requirement covers outside collaborators as well as members.



    Quando um novo colaborador for adicionado, o sistema de controle de versão DEVE exigir atribuição manual de permissão, ou restringir as permissões do colaborador aos menores privilégios disponíveis por padrão. [OSPS-AC-02.01]
    A maioria dos sistemas públicos de controle de versão são configurados desta maneira. Certifique-se de que o sistema de controle de versão do projeto sempre atribua as menores permissões disponíveis aos colaboradores por padrão quando adicionados, concedendo permissões adicionais somente quando necessário.

    A role must be assigned explicitly when a collaborator is added to the repository. Organization membership confers no elevated permission: the organization's base repository permission is read (GET /orgs/reponomics returns default_repository_permission: "read"), and because this repository is public, that base permission confers exactly the access an anonymous user already has. Every collaborator with write access holds an explicit grant.



    Quando uma confirmação direta for tentada no ramo principal do projeto, um mecanismo de aplicação DEVE impedir que a mudança seja aplicada. [OSPS-AC-03.01]
    Se o VCS for centralizado, defina proteção de ramo no ramo principal no VCS do projeto. Alternativamente, use uma abordagem descentralizada, como a do kernel Linux, onde as mudanças são primeiro propostas em outro repositório, e mesclar mudanças no repositório principal requer um ato separado específico.

    The "protect-main" ruleset applies to the default branch with enforcement active and includes a pull_request rule, so commits cannot be applied directly to main and must arrive through a pull request. The ruleset defines no bypass actors, so no one can circumvent it, including repository admins and organization owners. It additionally enforces linear history, blocks non-fast-forward updates, and requires signed commits.



    Quando for feita uma tentativa de excluir o ramo principal do projeto, o sistema de controle de versão DEVE tratar isso como uma atividade sensível e exigir confirmação explícita de intenção. [OSPS-AC-03.02]
    Defina proteção de ramo no ramo principal no sistema de controle de versão do projeto para evitar exclusão.

    The "protect-main" ruleset includes a deletion rule applying to the default branch, so deleting main is blocked outright rather than merely confirmed. No actor can bypass the ruleset, including repository admins and organization owners.



    Quando um pipeline de CI/CD opera com metadados não confiáveis, esses parâmetros DEVEM ser higienizados e validados antes de serem usados no pipeline. [OSPS-BR-01.01]
    Os pipelines de CI/CD devem sanitizar (citar, escapar ou sair com valores esperados) todas as entradas de metadados que correspondam a fontes não confiáveis. Isso inclui dados como nomes de branch, mensagens de commit, tags, títulos de pull requests e informações de autoria.

    No untrusted metadata reaches a shell in the project's GitHub Actions workflows. Branch names, commit messages, tags, pull-request titles, and author information are never interpolated into a run: block. Where a workflow needs the branch name, it reads the ${GITHUB_REF_NAME} environment variable inside double quotes rather than a ${{ }} expansion. The only ${{ }} expansions appearing inside run: blocks are github.server_url and github.repository, both GitHub-controlled values. The workflow that validates pull-request titles passes the title to a SHA-pinned action through the GitHub API and never into a shell. The Cloudflare Workers Builds deployment pipeline runs fixed literal commands with no metadata interpolation.



    Quando um pipeline de CI/CD opera em snapshots de código não confiável, ele DEVE impedir o acesso a credenciais e ativos privilegiados de CI/CD. [OSPS-BR-01.03]
    Os pipelines de CI/CD devem isolar snapshots de código não confiável de credenciais e ativos privilegiados. Em particular, os projetos devem ter cuidado para garantir que os workflows que compilam ou executam código antes da revisão por um colaborador não tenham acesso às credenciais de CI/CD.

    Neither of the project's two CI/CD pipelines exposes privileged credentials to unreviewed code. The only workflow triggered by pull_request_target, .github/workflows/semantic-pr.yml, checks out no pull-request code, runs no project code, and is limited to permissions: pull-requests: read. The only workflow holding privileged credentials, release-please.yml, is triggered exclusively by push to main and workflow_dispatch, so it never operates on an unreviewed code snapshot. ci.yml does execute pull-request code but references no secrets, and because the repository is public, fork pull-request tokens are downgraded to read-only and are given no secrets. The repository's default workflow token permission is read, and all actions are pinned to full-length commit SHAs. Production deployment runs through Cloudflare Workers Builds, documented in docs/operations.md; fork pull requests build there only after explicit admin approval, so untrusted code is reviewed by a collaborator before it can run with access to deploy credentials.



    Quando o projeto listar um URI como um canal oficial do projeto, esse URI DEVE ser entregue exclusivamente usando canais criptografados. [OSPS-BR-03.01]
    Configure os sites do projeto e os sistemas de controle de versão para usar canais criptografados como SSH ou HTTPS para transmissão de dados. Certifique-se de que todas as ferramentas e domínios referenciados na documentação do projeto só possam ser acessados por meio de canais criptografados.

    The project's official channels are the source repository at https://github.com/reponomics/PolicyChecks and the badge service at https://policychecks.reponomics.org, and both are reachable only over encrypted channels. A plain-HTTP request to the service returns 301 to the https:// origin, and responses carry strict-transport-security: max-age=86400. Badge endpoints return HTTP/2 200 over TLS with a valid certificate chain; the service root returns 404 by design, as the service exposes no landing page.



    Quando o projeto listar uma URI como canal de distribuição oficial, esse canal DEVE ser protegido contra ataques de adversário no meio (adversary-in-the-middle) usando canais criptograficamente autenticados. [OSPS-BR-03.02]
    Os artefatos distribuídos pelo projeto devem ser distribuídos por meio de canais que garantam integridade e autenticidade. O uso de HTTPS para downloads, versões assinadas ou distribuição por meio de gerenciadores de pacotes confiáveis são métodos aceitáveis para proteger contra ataques de adversário no meio.

    The project distributes through GitHub Releases (https://github.com/reponomics/PolicyChecks/releases), served exclusively over HTTPS, and through the hosted service, which is TLS-only with HTTP redirecting to HTTPS and HSTS set. The package is marked private: true in package.json and is not published to any registry. Every release tag commit carries a valid signature (verification.verified: true), and immutable releases are enabled (GET /repos/reponomics/PolicyChecks/immutable-releases returns enabled: true), so published release assets and tags cannot be altered after publication.



    O projeto DEVE impedir o armazenamento não intencional de dados sensíveis não criptografados, como segredos e credenciais, no sistema de controle de versão. [OSPS-BR-07.01]
    Configure .gitignore ou equivalente para excluir arquivos que possam conter informações sensíveis. Use hooks de pré-commit e ferramentas de varredura automatizadas para detectar e prevenir a inclusão de dados sensíveis em commits.

    .gitignore excludes .env, .env.* (with an explicit !.env.example exception), and *.private-key.pem. .env.example contains blank placeholders and non-secret local defaults only. Secret scanning, push protection, non-provider pattern scanning, and validity checks are all enabled on the repository, so a secret is blocked at push time rather than merely detected afterward. Runtime secrets are held in the deployed Worker's settings rather than in build variables, and docs/operations.md documents credential storage.



    Quando o projeto tiver feito uma versão, a documentação do projeto DEVE incluir guias do usuário para todas as funcionalidades básicas. [OSPS-DO-01.01]
    Crie guias do usuário ou documentação para todas as funcionalidades básicas do projeto, explicando como instalar, configurar e usar os recursos do projeto. Se houver quaisquer ações perigosas ou destrutivas conhecidas disponíveis, inclua avisos altamente visíveis.

    The README documents what the service does, how it works, and how to use it (badge table, endpoint reference, examples); additional docs live in https://github.com/reponomics/PolicyChecks/tree/main/docs [documentation_basics]



    Quando o projeto tiver feito uma versão, a documentação do projeto DEVE incluir um guia para relatar defeitos. [OSPS-DO-02.01]
    É recomendado que os projetos usem o rastreador de issues padrão do seu VCS. Se uma fonte externa for usada, certifique-se de que a documentação do projeto e o guia de contribuição expliquem de forma clara e visível como usar o sistema de relatório. É recomendado que a documentação do projeto também estabeleça expectativas sobre como os defeitos serão triados e resolvidos.

    The project has made releases, so this control applies. SUPPORT.md contains a "Service Issues" section directing defect reports to the GitHub issue tracker and enumerating what belongs there, states that public issues are preferred and why, routes repository-specific questions to support@reponomics.org, and directs security reports to SECURITY.md instead. CONTRIBUTING.md independently states that issues may be opened to report a bug. GitHub Issues is enabled (has_issues: true).



    O projeto DEVE ter um ou mais mecanismos para discussões públicas sobre mudanças propostas e obstáculos de uso. [OSPS-GV-02.01]
    Estabeleça um ou mais mecanismos para discussões públicas dentro do projeto, como listas de discussão, mensagens instantâneas ou rastreadores de issues, para facilitar a comunicação aberta e feedback.

    Both GitHub Issues and GitHub Discussions are enabled on the repository (GET /repos/reponomics/PolicyChecks returns has_issues: true and has_discussions: true). CONTRIBUTING.md directs contributors to open an issue to request a feature or report a bug, and to start a Discussion thread to engage other users on a topic; it further asks that proposed feature changes be raised in an issue first so they can be discussed publicly before implementation.



    A documentação do projeto DEVE incluir uma explicação do processo de contribuição, ou declarar claramente que contribuições públicas não são aceitas [OSPS-GV-03.01]
    Crie um CONTRIBUTING.md ou diretório CONTRIBUTING/ para delinear o processo de contribuição incluindo as etapas para enviar mudanças e se engajar com os mantenedores do projeto.

    CONTRIBUTING.md at the repository root explains the contribution process: how to raise an issue or Discussion, the expectation that feature proposals are discussed before a PR, the types of contributions accepted (including project-specific criteria for proposing new badges), repository policies governing submissions (signed commits, PR-only changes to main, conventional-commit PR titles, running npm run check, resolving failing checks, including tests), and local development setup. https://github.com/reponomics/PolicyChecks/blob/main/CONTRIBUTING.md



    A licença do código-fonte DEVE atender à Definição de Código Aberto da OSI ou à Definição de Software Livre da FSF. [OSPS-LE-02.01]
    Adicione um arquivo LICENSE ao repositório do projeto com uma licença que seja uma licença aprovada pela Open Source Initiative (OSI), ou uma licença livre aprovada pela Free Software Foundation (FSF). Exemplos de tais licenças incluem MIT, BSD 2-clause, BSD 3-clause revisada, Apache 2.0, Lesser GNU General Public License (LGPL) e a GNU General Public License (GPL). Lançar para o domínio público atende a este controle se não houver outros obstáculos como patentes.

    The source code is licensed under the MIT license, which is OSI-approved and FSF free. Confirmed by the LICENSE file at the repository root, the "license": "MIT" field in package.json, and GitHub's own license detection (GET /repos/reponomics/PolicyChecks returns license.spdx_id: MIT).



    A licença dos ativos de software lançados DEVE atender à Definição de Código Aberto da OSI ou à Definição de Software Livre da FSF. [OSPS-LE-02.02]
    Se uma licença diferente for incluída com ativos de software lançados, certifique-se de que seja uma licença aprovada pela Open Source Initiative (OSI), ou uma licença livre aprovada pela Free Software Foundation (FSF). Exemplos de tais licenças incluem MIT, BSD 2-clause, BSD 3-clause revisada, Apache 2.0, Lesser GNU General Public License (LGPL) e a GNU General Public License (GPL). Note que a licença para os ativos de software lançados pode ser diferente do código-fonte.

    The released software assets carry no separate license. The releases publish no separate assets, so the only released artifacts are the source archives generated for each tag, governed by the same MIT license as the source code. Those archives contain LICENSE at their root. MIT is OSI-approved and FSF free.



    A licença do código-fonte DEVE ser mantida no arquivo LICENSE, arquivo COPYING, diretório LICENSES/ ou diretório LICENSE/ do repositório correspondente. [OSPS-LE-03.01]
    Inclua a licença do código-fonte do projeto no arquivo LICENSE, arquivo COPYING, diretório LICENSES/ ou diretório LICENSE/ do projeto para fornecer visibilidade e clareza sobre os termos de licenciamento. O nome do arquivo PODE ter uma extensão. Se o projeto tiver vários repositórios, garanta que cada repositório inclua o arquivo de licença.

    The MIT license text is maintained in the LICENSE file at the root of the repository: https://github.com/reponomics/PolicyChecks/blob/main/LICENSE. The project has a single repository, so there is no additional repository requiring its own license file.



    A licença dos ativos de software lançados DEVE ser incluída no código-fonte lançado, ou em um arquivo LICENSE, arquivo COPYING, ou diretório LICENSE/ junto aos ativos de lançamento correspondentes. [OSPS-LE-03.02]
    Inclua a licença dos ativos de software lançados do projeto no código-fonte lançado, ou em um arquivo LICENSE, arquivo COPYING ou diretório LICENSE/ ao lado dos ativos de versão correspondentes para fornecer visibilidade e clareza sobre os termos de licenciamento. O nome do arquivo PODE ter uma extensão. Se o projeto tiver múltiplos repositórios, certifique-se de que cada repositório inclua o arquivo de licença.

    The releases publish no separate assets, so the released software assets are the source archives generated for each tag. Those archives include the MIT license at the archive root; nothing in the repository's export configuration removes it.



    O repositório de código-fonte do projeto DEVE ser publicamente legível em uma URL estática. [OSPS-QA-01.01]
    Use um VCS comum como GitHub, GitLab ou Bitbucket. Certifique-se de que o repositório seja publicamente legível. Evite duplicação ou espelhamento de repositórios a menos que documentação altamente visível esclareça a fonte primária. Evite mudanças frequentes no repositório que impactariam a URL do repositório. Certifique-se de que o repositório seja público.

    The source repository is publicly readable at the static URL https://github.com/reponomics/PolicyChecks. GET /repos/reponomics/PolicyChecks returns private: false, visibility: "public", archived: false. It is hosted on GitHub.



    O sistema de controle de versão DEVE conter um registro publicamente legível de todas as alterações feitas, quem fez as alterações e quando as alterações foram feitas. [OSPS-QA-01.02]
    Use um VCS comum como GitHub, GitLab ou Bitbucket para manter um histórico de commits publicamente legível. Evite esmagar ou reescrever commits de uma forma que obscureça o autor de quaisquer commits.

    The full git history is publicly readable and records the author name, email, and date of every commit. History rewriting on the primary branch is blocked: the "protect-main" ruleset enforces required_linear_history, non_fast_forward, and required_signatures with no bypass actors, so force-pushes and rewrites to main are rejected. Because linear history is required, merges are limited to squash and rebase. Squash merging collapses a branch's individual commits, but authorship is preserved through it, and the history on main attributes work to both maintainers and external contributors.



    Quando o sistema de gerenciamento de pacotes suportar, o repositório de código-fonte DEVE conter uma lista de dependências que representa as dependências diretas da linguagem. [OSPS-QA-02.01]
    Isso pode assumir a forma de um arquivo de dependências de gerenciador de pacotes ou linguagem que enumera todas as dependências diretas, como package.json, Gemfile ou go.mod.

    npm supports dependency manifests, and the repository contains package.json enumerating all direct language dependencies, alongside package-lock.json pinning the fully resolved transitive tree. CONTRIBUTING.md directs contributors to install from the lockfile with npm ci and to use npm install only when intentionally updating dependencies and committing the resulting lockfile change.



    Projetos com múltiplos repositórios DEVEM documentar uma lista das bases de código que fazem parte do projeto. [OSPS-QA-04.01]
    Documente quaisquer repositórios de código de subprojetos adicionais produzidos pelo projeto e compilados em uma versão de lançamento. Esta documentação deve incluir o status e a intenção da respectiva base de código.

    PolicyChecks is a single codebase in a single repository - the Cloudflare worker entry point lives in-repo at cloudflare/policychecks-worker.ts. No subproject repository is produced or compiled into a release, so there is no list of constituent codebases to document.



    O sistema de controle de versão NÃO DEVE conter artefatos executáveis gerados. [OSPS-QA-05.01]
    Remova artefatos executáveis gerados no sistema de controle de versão do projeto. É recomendado que qualquer cenário em que um artefato executável gerado apareça como crítico para um processo, como testes, ele deve ser gerado no momento da compilação ou armazenado separadamente e buscado durante uma etapa de pipeline específica e bem documentada.

    No generated executable artifact is tracked; file --mime over every tracked file returns no executables. Build and coverage outputs are excluded from version control: .gitignore covers dist/, build/, out/, coverage/, and node_modules/, and none of those paths is tracked. Exactly one tracked file carries the executable bit, .husky/pre-commit, a short hand-written shell hook rather than a generated artifact. The worker is generated at build time by npm run build (tsconfig.build.json).



    O sistema de controle de versão NÃO DEVE conter artefatos binários não revisáveis. [OSPS-QA-05.02]
    Não adicione nenhum artefato binário não revisável ao sistema de controle de versão do projeto. Isso inclui binários de aplicativos executáveis, arquivos de biblioteca e artefatos similares. Não inclui recursos como imagens gráficas, arquivos de som ou música e conteúdo similar normalmente armazenado em formato binário.

    The only binary files tracked are PNG images under docs/assets/ - project banners and documentation screenshots. Graphical images are outside this control's scope. No executable application binaries, library files, or comparable unreviewable artifacts are tracked.



    A documentação do projeto DEVE conter contatos de segurança. [OSPS-VM-02.01]
    Crie um arquivo security.md (ou com nome similar) que contenha contatos de segurança para o projeto.

    SECURITY.md at the repository root publishes the project's security contacts: a GitHub Private Vulnerability Reporting link (https://github.com/reponomics/PolicyChecks/security/advisories/new) as the primary channel and security@reponomics.org as a fallback, together with a stated 14-day maximum for follow-up. SUPPORT.md cross-references it and explicitly directs security issues away from public issues and the general support address.



Você pode usar ferramentas e sistemas de IA para propor alterações por meio de uma URL simples, como https://www.bestpractices.dev/pt-BR/projects/14356/choose/edit?osps_ac_01_01_status=Met&osps_ac_01_01_justification=GitHub+enforced. Veja nosso sistema de propostas de automação para saber como fazer isso. Estes dados estão disponíveis sob o Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0). Isso significa que um Destinatário de Dados pode compartilhar os Dados, com ou sem modificações, desde que o Destinatário de Dados disponibilize o texto deste acordo com os Dados compartilhados. Por favor, dê crédito a Really Him e aos contribuidores do selo de melhores práticas OpenSSF.

Entrada de selo do projeto de propriedade de: Really Him.
Entrada criada em 2026-08-29 13:30:53 UTC, última atualização em 2026-09-03 22:11:17 UTC. Selo de aprovação alcançado pela última vez em 2026-08-29 16:42:55 UTC.