百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
B

best-practices-badge

> 后端框架
开源

开源 安全基础 (OpenSSF) 最佳实践徽章 (原 Core Infrastructure Initiative (CII) 最佳实践徽章)

1.3K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

开源 安全基础 (OpenSSF) 最佳实践徽章 (原 Core Infrastructure Initiative (CII) 最佳实践徽章)

OpenSSF Best Practices Badge (formerly CII Best Practices Badge)

         
  </a>
</td>

This project identifies best practices for Free/Libre and Open Source Software (FLOSS) and implements a badging system for those best practices. The "BadgeApp" badging system is a simple web application that lets projects self-certify that they meet the criteria and show a badge. The real goal of this project is to encourage projects to apply best practices, and to help users determine which FLOSS projects do so. We believe that FLOSS projects that implement best practices are more likely to produce better software, including more secure software. We support both our original "metal" badge criteria and the OpenSSF Baseline criteria.

See the OpenSSF Best Practices badge website if you want to try to actually get a badge.

This is the development site for the criteria and badge application software that runs the website. Feedback is very welcome via the GitHub site as issues or pull (merge) requests. There is also a mailing list for general discussion. This project was originally developed under the CII, but it is now part of the Open Source Security Foundation (OpenSSF) Best Practices Working Group (WG). Its formal name is the OpenSSF Best Practices badge project, formerly named the CII Best Practices badge.

Interesting pages

Interesting pages include:

  • Badging Criteria for the passing level
  • Criteria for all badging levels
  • Information on how to contribute
  • Information on our own security, including how to report vulnerabilities in our badge application
  • Up-for-grabs lists smaller tasks that may take 1-3 days, and are ideal for people new to the project (or FLOSS in general)
  • Background on Badging
  • ChangeLog
  • Requirements - our overall requirements
  • Design - our basic design
  • Current implementation - notes about the BadgeApp implementation
  • security - notes about BadgeApp security, specifically its assurance case
  • testing - notes about BadgeApp automated tests
  • api - Application Programming Interface (API), including data downloads
  • Installation - Installation and quick start
  • Vetting - More about our vetting approach
  • Roadmap - Roadmap (future plans)
  • Automation proposals - a mechanism for external tools to easily propose changes (this is our recommended integration mechanism)

Baseline and Metal series

The best practices badge site supports both the OpenSSF Baseline criteria (baseline-1,2,3) and its own "Metal series" of criteria (passing, silver, gold).

The baseline series is a more minimal checklist focusing only on MUST security requirements and is derived in part from global cybersecurity regulations and frameworks. The metal series is a larger set of criteria that includes suggestions and quality issues that impact security, and is derived in part from experiences of secure FLOSS projects. Both focus on security.

We encourage projects to eventually do both. You choose where to start. Once you do one series, it's much easier to do the other.

Summary of Best Practices Criteria "passing" level

This is a summary of the passing criteria, with requirements in bold:

  • Have a stable website, which says:
    • what it does
    • how to get it
    • how to give feedback
    • how to contribute and preferred styles
  • Explicitly specify a FLOSS license
  • Support HTTPS on the project sites
  • Document how to install and run (securely), and any API
  • Have a distributed public version control system, including changes between releases:
    • Give each release a unique version, using semantic versioning format
    • Give a summary of changes for each release, identifying any fixed vulnerabilities
  • Allow bug reports to be submitted, archived and tracked:
    • Acknowledge/respond to bugs & enhancement requests, rather than ignoring them
    • Have a secure, documented process for reporting vulnerabilities
    • Respond within 14 days, and fix vulnerabilities, within 60 days if they're public
  • Have a build that works, using standard open-source tools
    • Enable (and fix) compiler warnings and lint-like checks
    • Run other static analysis tools and fix exploitable problems
  • Have an automated test suite that covers most of the code/functionality, and officially require new tests for new code
  • Automate running the tests on all changes, and apply dynamic checks:
    • Run memory/behaviour analysis tools (sanitizers/Valgrind etc.)
    • Run a fuzzer or web-scanner over the code
  • Have a developer who understands secure software and common vulnerability errors
  • If cryptography is used:
    • Use public protocols/algorithm
    • Don't re-implement standard functionality
    • Use open-source cryptography
    • Use key lengths that will stay secure
    • Don't use known-broken or known-weak algorithms
    • Use algorithms with forward secrecy
    • Store any passwords with iterated, salted, hashes using a key-stretching algorithm
    • Use cryptographic random number sources

Summary of Best Practices Criteria for higher levels

Getting a passing badge is a significant achievement; on average only about 10% of pursuing projects have a passing badge. That said, some projects would like to meet even stronger criteria, and many users would like projects to do so. We have established two higher levels beyond passing: silver and gold. The higher levels strengthen some of the passing criteria and add new criteria of their own.

Silver

Here is a summary of the silver criteria, with requirements in bold (for details, see the full list of silver criteria):

  • Use a DCO or similar
  • Define/document project governance
  • Another will have the necessary access rights if someone dies
  • "Bus factor" of 2 or more
  • Document security requirements
  • Have an assurance case explaining why security requirements are met
  • Have a quick start guide
  • Follow accessibility best practices
  • Pick & follow coding standards
  • Monitor external dependencies to detect/fix known vulnerabilities
  • Tests have 80%+ statement coverage
  • Project releases for widespread use are cryptographically signed
  • Check all inputs from potentially untrusted sources for validity (using an allowlist)
  • Use hardening mechanisms

Gold

Here is a summary of the gold criteria, with requirements in bold (for details, see the full list of gold criteria):

  • At least 2 unassociated significant contributors
  • Per-file copyright and license
  • Use 2FA
  • At least 50% of all modifications are reviewed by another
  • Have a reproducible build
  • Use continuous integration
  • Statement coverage 90%+
  • Branch coverage 80%+
  • Support secure protocols & disable insecure protocols by default
  • Use TLS version 1.2 or higher
  • Have a hardened project website, repo, and download site
  • Have a security review (internal or external)

Directory "doc" is now "docs"

If you've used this system in the past, you may have referred to our doc subdirectory for documentation. We have renamed that to a docs subdirectory.

Main site

Years ago we moved our main site to https://www.bestpractices.dev.

For many years the main site previously was at https://bestpractices.coreinfrastructure.org. Ho

GitHub Issues· 0 开放

在 GitHub 查看全部

暂无开放 Issues,或尚未同步最近议题。

核心特点

  • •Badging Criteria for the passing level
  • •Criteria for all badging levels
  • •Information on how to contribute
  • •Information on our own security, including how to report vulnerabilities in our badge application
  • •Up-for-grabs
  • •Background on Badging
  • •ChangeLog
  • •Requirements - our overall requirements
  • •Design - our basic design
  • •Current implementation - notes about the

> 标签

Rubybadgebest-practicesflossfoss

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类后端框架
定价开源

> 相关工具

N
Node.js
基于 V8 的 JavaScript 运行时
D
Django
Python 高级 Web 框架
S
Spring Boot
Java 生态主流微服务框架