遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/1)
<a href="https://www.bestpractices.dev/projects/1"><img src="https://www.bestpractices.dev/projects/1/badge"></a>
BadgeApp is the web application that allows developers to provide information about their project and (hopefully) get an Open Source Security Foundation (OpenSSF) Best Practices badge. This project was originally known as the Core Infrastructure Initiative (CII) best practices badge project.
The Open Source Security Foundation (OpenSSF) is managed by The Linux Foundation. The OpenSSF Best Practices badge online application (aka the BadgeApp) enables developers to quickly determine whether they are following best practices and to receive a badge they can display on GitHub and other locations. The application and its criteria are an open source project to which developers can contribute.
You can see the program running, and use it to try to get a badge, by visiting: https://bestpractices.coreinfrastructure.org/
The BadgeApp is written in Ruby on Rails and Javascript.
See the development site on GitHub for more about how we secure this application.
Note that the BadgeApp gets its own badge!
David A. Wheeler, Jason Dossett, and Dan Kohn are all very familiar with the software and could easily continue its maintenance if necessary. Many other people have contributed per CREDITS and several of them could also probably maintain it if absolutely necessary. See GitHub contributors statistics for the latest statistics on contributors.
There are at least 22 contributors, and at least three significant contributors today: David A. Wheeler (IDA), Jason Dossett (IDA), and Dan Kohn (Linux Foundation). For this work, IDA works for the Core Infrastructure Initiative (CII), which is a project of the Linux Foundation (LF). However, the LF is itself a nonprofit mutual benefit corporation (specifically a Section 501(c)(6)). As a nonprofit mutual benefit corporation, the LF is directed by other organizations which actually provide funding to do this work, and thus the LF and CII can be viewed as "pass through" organizations as described in this criterion.
Each source file has a copyright statement in its header. See CONTRIBUTING.md for the instructions for Ruby (nearly all source files are in Ruby).
Each source file has a copyright statement in its header (MIT). See CONTRIBUTING.md for the instructions for Ruby source files (nearly all source files are in Ruby).
Uses git. Repository on GitHub, which uses git. git is distributed.
We use the "up-for-grabs" tag. This is noted on the front page of the repo.
The Core Infrastructure Initiative (CII) requires two-factor authentication for all organization members and outside collaborators as described in Requiring two-factor authentication in your organization.
Project governance specifically documents that SMS is not acceptable; see governance.md.
The file CONTRIBUTING.md describes the code review requirements. E.G., changes to the code built on Rails must follow the Rails community style guide. The continuous integration tasks run a large number of checks, e.g., all Ruby code must go through Rubocop, and all JavaScript code must go through ESLint (with the given conditions). We absolutely require that the Ruby code have at least 90% statement coverage, but we typically don't accept statement coverage less than 100%.
We have a policy in CONTRIBUTING.md that modifications other than low-risk modifications be reviewed by someone else, and a stated goal of having at least 50% of all proposed modifications to be reviewed.
The code is written in Ruby and Javascript, which are not delivered as compiled executables.
Yes. "rake test" invokes the automated test suite. The default "rake" command includes "rake test". This is documented in CONTRIBUTING.md.
Code is frequently integrated back into GitHub; CircleCI and several other tools are then run on the result to determine if there's a problem. If a problem is found, the tools provide feedback via GitHub. For more information, see the BadgeApp's status on CircleCI.
As of this writing, we have 100% statement coverage, see Codecov.io.
There are no top-to-bottom FLOSS tools available in Ruby which can measure branch coverage. Ruby version 2.5 was the first version that enabled capturing branch coverage, and it was only released on 2017-12-25. Other tools on top of Ruby need to be modified so that they can use this information, e.g., simplecov issue 412 proposed adding branch coverage support to simplecov.
https://github.com/linuxfoundation/cii-best-practices-badge
Github uses TLS 1.2, see https://github.com/linuxfoundation/cii-best-practices-badge.
We use GitHub, and securityheaders.io verifies that our sites meet this criterion.
We have performed a self-assessment of our security, and it is documented in security.md. This considered the security requirements and security boundary, and examined the high-level architecture. We used static & dynamic tools, as well as human review (especially of the major design components). This was not an independent evaluation, but the criterion doesn't require that.
We use various HTTP headers for hardening, including a rigorous Content Security Policy (CSP) setting. For more information, see security.md which discusses the hardening mechanisms.
Analyzed with OWASP ZAP by Emily Ratliff
Instead of embedding run-time assertions, there are many external tests with assertions that are checked during automated testing.
后退