Blanc

遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。

没有一套可以保证软件永远不会有缺陷或漏洞的做法;如果规范或假设是错误的,即使合适的方法也可能失败。也没有哪些做法可以保证一个项目能够维持健康和运作良好的开发者社区。但是,遵循最佳做法可以帮助改善项目的成果。例如,一些做法可以在发布之前进行多人评估,这可以帮助您找到其他难以找到的技术漏洞,并帮助建立信任,并希望不同公司的开发人员之间进行重复的交互。要获得徽章,必须满足所有“必须”和“禁止”的条款,满足所有“应该”条款或有合适的理由,所有“建议”条款必须满足或未满足(至少希望考虑)。欢迎通过 GitHub网站创建问题或提出请求进行反馈。另外还有一个一般讨论邮件列表

如果这是您的项目,请在项目页面上显示您的基准徽章状态!基准徽章状态如下所示: 项目14451的基准徽章等级为baseline-1 以下是如何嵌入基准徽章:
您可以通过将其嵌入到Markdown文件中来显示您的基准徽章状态:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/14451/baseline)](https://www.bestpractices.dev/projects/14451)
或者将其嵌入到HTML中:
<a href="https://www.bestpractices.dev/projects/14451"><img src="https://www.bestpractices.dev/projects/14451/baseline"></a>


这些是基准等级1的标准。 这些是标准版本 v2026.08.28。

Baseline Series: 基准等级1 基准等级2 基准等级3

        

 基本

  • 常规

    请注意,其他项目可能使用相同的名称。

    Blanc is an open-source Electron desktop browser for macOS, Windows, and Linux, with compact Island chrome and built-in ad/tracker blocking.

    请使用 SPDX许可证表达格式;例子包括“Apache-2.0”,“BSD-2-Clause”,“BSD-3-Clause”,“GPL-2.0+”,“LGPL-3.0 +”,“MIT”和“(BSD-2-Clause OR Ruby)”。
    如果有多种语言,请将它们列为逗号分隔值(可选空格),并将它们从最多到最少使用。如果有长列表,请至少列出前三个最常见的列表。如果没有语言(例如,这是仅文档或仅测试项目),请使用单个字符“ - ”。请使用每种语言的常规大小写,例如“JavaScript”。
    通用平台枚举(CPE)是用于信息技术系统,软件和软件包的结构化命名方案。在报告漏洞时,它可用于多个系统和数据库。

    Application in progress; no independent security certification or completed external audit is claimed. Bananify Creative-owned software is MIT-licensed. Reserved identity artwork and third-party licensing terms are documented at https://github.com/bnfy/blanc/blob/main/ASSET-LICENSE.md and https://github.com/bnfy/blanc/blob/main/THIRD-PARTY-NOTICES.md. Release evidence: https://github.com/bnfy/blanc/blob/main/docs/release-incidents/2026-09-02-v1.15.0.md

 控制 24/24

  • 控制


    当用户尝试读取或修改项目权威存储库中的敏感资源时,系统必须要求用户完成多因素认证过程。 [OSPS-AC-01.01]
    为项目的版本控制系统强制执行多因素认证,要求协作者在访问敏感数据或修改存储库设置时提供第二种形式的认证。通行密钥对于此控制是可接受的。

    Verified 2026-09-04: GitHub account security shows two-factor authentication Enabled and required for bnfy. The repository collaborator API lists bnfy as its sole human collaborator/administrator. Sensitive repository changes therefore require an MFA-protected maintainer account. Recheck before adding collaborators.



    当添加新的协作者时,版本控制系统必须要求手动分配权限,或默认将协作者权限限制为可用的最低权限。 [OSPS-AC-02.01]
    大多数公共版本控制系统都是这样配置的。确保项目的版本控制系统在添加协作者时始终默认分配最低可用权限,仅在必要时授予额外权限。

    The authoritative repository is owned by the GitHub personal account bnfy, its sole human collaborator as verified on 2026-09-04. GitHub requires the owner to explicitly invite a selected person before collaborator access is granted; there is no automatic collaborator enrollment. Personal repositories offer owner and collaborator roles, so this relies on manual assignment, not a claim of granular read-only collaborator roles. Platform documentation: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/repository-access-and-collaboration/inviting-collaborators-to-a-personal-repository



    当尝试直接提交到项目的主分支时,强制机制必须阻止该更改的应用。 [OSPS-AC-03.01]
    如果VCS是集中式的,请在项目的VCS中对主分支设置分支保护。或者,使用去中心化方法,如Linux内核的方法,即先在另一个仓库中提出更改,将更改合并到主仓库需要特定的单独操作。

    Main branch protection enabled and independently read back on 2026-09-04: pull requests required, enforce_admins=true, four required GitHub Actions checks with strict up-to-date checking. Direct main pushes are blocked, including administrators. The approval count is zero for the sole-maintainer project; independent human review is not claimed.



    当尝试删除项目的主分支时,版本控制系统必须将此视为敏感活动,并要求明确确认意图。 [OSPS-AC-03.02]
    在项目的版本控制系统中对主分支设置分支保护以防止删除。

    Main branch protection read back from the GitHub API on 2026-09-04 has allow_deletions.enabled=false and enforce_admins.enabled=true. Deletion is blocked while the rule is enabled. The criterion implementation guidance explicitly accepts branch protection that prevents deletion.



    当CI/CD管道处理不受信任的元数据时,必须在这些参数用于管道之前对其进行清理和验证。 [OSPS-BR-01.01]
    CI/CD 流水线应对所有来自不可信来源的元数据输入进行清理(引用、转义或在期望值时退出)。这包括分支名称、提交消息、标签、拉取请求标题和作者信息等数据。

    No untrusted metadata is consumed by custom pipeline commands in the five workflows reviewed at main 8d4599bca2b8380da1e1c74c2df28cbcbdd83aea: https://github.com/bnfy/blanc/tree/8d4599bca2b8380da1e1c74c2df28cbcbdd83aea/.github/workflows . PR titles, bodies, messages and external branch names are not interpolated into run scripts. Checkout uses the platform-selected PR merge ref. Manual release inputs are supplied by trusted collaborators; the Baseline addresses these separately in OSPS-BR-01.04. Release-tag environment transport hardening is pending in PR #288 and is not claimed as merged. Reassess this N/A if workflows begin consuming untrusted metadata.



    当 CI/CD 流水线对不可信代码快照进行操作时,它必须阻止访问特权 CI/CD 凭据和资产。 [OSPS-BR-01.03]
    CI/CD 流水线应将不可信代码快照与特权凭据和资产隔离。特别是,项目应谨慎确保在协作者审查之前构建或执行代码的工作流无法访问 CI/CD 凭据。

    Reviewed all five authoritative workflows at https://github.com/bnfy/blanc/tree/8d4599bca2b8380da1e1c74c2df28cbcbdd83aea/.github/workflows . Outside contributions use pull_request on GitHub-hosted runners; there is no pull_request_target, workflow_run artifact execution, or self-hosted runner. GitHub withholds repository secrets and restricts fork PR tokens to read-only: https://docs.github.com/en/actions/reference/security/securely-using-pull_request_target . Build/test PR jobs explicitly use contents:read; CodeQL analyzes without executing a project build. Signing secrets and publication grants are confined to the manually dispatched native workflow, requiring trusted collaborator action on reviewed code. Repository API verified default_workflow_permissions=read and can_approve_pull_request_reviews=false on 2026-09-04. This does not claim build/sign job separation or an independent human review.



    当项目将URI列为官方项目渠道时,该URI必须仅通过加密渠道交付。 [OSPS-BR-03.01]
    配置项目的网站和版本控制系统使用SSH或HTTPS等加密渠道进行数据传输。确保项目文档中引用的所有工具和域名只能通过加密渠道访问。

    Project URLs use HTTPS exclusively.



    当项目将某个URI列为官方分发渠道时,该渠道必须使用经过加密身份验证的通道进行保护,以防止中间人攻击。 [OSPS-BR-03.02]
    项目分发的构件应通过能够确保完整性和真实性的渠道进行分发。使用HTTPS进行下载、签名发布或通过受信任的软件包管理器分发,都是防止中间人攻击的可接受方法。

    Distribution channels use HTTPS exclusively.



    项目必须防止在版本控制系统中意外存储未加密的敏感数据,例如机密和凭据。 [OSPS-BR-07.01]
    配置.gitignore或等效文件以排除可能包含敏感信息的文件。使用预提交钩子和自动扫描工具来检测和防止在提交中包含敏感数据。

    GitHub repository security settings verified on 2026-09-04 show secret_scanning and secret_scanning_push_protection enabled for bnfy/blanc. These prevent pushes of recognized secret types; this does not claim detection of every secret.



    当项目发布版本后,项目文档必须包含所有基本功能的用户指南。 [OSPS-DO-01.01]
    为项目的所有基本功能创建用户指南或文档,说明如何安装、配置和使用项目的功能。如果存在任何已知的危险或破坏性操作,请包含高度可见的警告。

    Published in merged PR #285, commit daf4663cc778cb278fc1179ef869a3a906b4ac94: https://github.com/bnfy/blanc/blob/main/docs/user-guide.md . Covers installation, navigation, tabs/groups/workspaces, favorites/imports/history/downloads, private browsing, blocking, permissions, profiles/sync, start-page options, updates and help. The companion docs/user-guide-evidence.md maps the guide to public v1.15.0 source and release evidence.



    当项目发布版本后,项目文档必须包含缺陷报告指南。 [OSPS-DO-02.01]
    建议项目使用其VCS默认问题跟踪器。如果使用外部来源,请确保项目文档和贡献指南清晰且明显地解释如何使用报告系统。建议项目文档还设定缺陷将如何分类和解决的期望。

    Public defect reports use https://github.com/bnfy/blanc/issues and the bug report form at https://github.com/bnfy/blanc/blob/main/.github/ISSUE_TEMPLATE/bug_report.yml . Security issues are reported privately using SECURITY.md.



    项目必须具有一种或多种机制,用于就拟议的更改和使用障碍进行公开讨论。 [OSPS-GV-02.01]
    在项目中建立一个或多个公开讨论机制,例如邮件列表、即时消息或问题跟踪器,以促进开放的沟通和反馈。

    GitHub supports public discussions on proposed changes (via pull requests) and usage obstacles (via issues).



    项目文档必须包含对贡献流程的说明,或明确声明不接受公开贡献 [OSPS-GV-03.01]
    创建一个CONTRIBUTING.md或CONTRIBUTING/目录来概述贡献流程,包括提交更改的步骤以及与项目维护者互动的方式。

    Published contribution process: https://github.com/bnfy/blanc/blob/main/CONTRIBUTING.md . Covers reports, development setup, validation, pull requests/review, licensing and conduct. Merged in PR #285 at daf4663cc778cb278fc1179ef869a3a906b4ac94 on 2026-09-04.



    源代码的许可证必须符合OSI开源定义或FSF自由软件定义。 [OSPS-LE-02.01]
    向项目的代码仓库添加一个LICENSE文件,其中包含开放源代码促进会(OSI)批准的许可证,或自由软件基金会(FSF)批准的自由许可证。此类许可证的示例包括MIT、BSD 2-Clause、BSD 3-Clause修订版、Apache 2.0、较宽松GNU通用公共许可证(LGPL)和GNU通用公共许可证(GPL)。如果没有其他限制(如专利),发布到公共领域可以满足此控制要求。

    Bananify Creative-owned software is MIT-licensed: https://github.com/bnfy/blanc/blob/main/LICENSE . Upstream components retain their own licenses; identity artwork remains reserved. See THIRD-PARTY-NOTICES.md and ASSET-LICENSE.md in the same repository.



    已发布软件资产的许可证必须符合OSI开源定义或FSF自由软件定义。 [OSPS-LE-02.02]
    如果已发布软件资产包含不同的许可证,请确保它是开放源代码促进会(OSI)批准的许可证,或自由软件基金会(FSF)批准的自由许可证。此类许可证的示例包括MIT、BSD 2-Clause、BSD 3-Clause修订版、Apache 2.0、较宽松GNU通用公共许可证(LGPL)和GNU通用公共许可证(GPL)。请注意,已发布软件资产的许可证可能与源代码的许可证不同。

    Bananify Creative-owned software is MIT-licensed: https://github.com/bnfy/blanc/blob/main/LICENSE . Third-party components retain their own terms and identity artwork is reserved; see https://github.com/bnfy/blanc/blob/main/THIRD-PARTY-NOTICES.md and https://github.com/bnfy/blanc/blob/main/ASSET-LICENSE.md . This is not a blanket MIT claim for every repository asset. [floss_license]



    源代码的许可证必须保存在对应存储库的LICENSE文件、COPYING文件、LICENSES/目录或LICENSE/目录中。 [OSPS-LE-03.01]
    将项目源代码的许可证包含在项目的LICENSE文件、COPYING文件、LICENSES/目录或LICENSE/目录中,以便清晰可见地说明许可条款。文件名可以带有扩展名。如果项目有多个存储库,请确保每个存储库都包含许可证文件。

    License file found in repository.



    已发布软件资产的许可证必须包含在已发布的源代码中,或包含在与相应发布资产一起提供的LICENSE文件、COPYING文件或LICENSE/目录中。 [OSPS-LE-03.02]
    将项目的已发布软件资产许可证包含在已发布的源代码中,或包含在与相应发布资产一起的LICENSE文件、COPYING文件或LICENSE/目录中,以提供许可条款的可见性和清晰性。文件名可以有扩展名。如果项目有多个仓库,请确保每个仓库都包含许可证文件。

    项目的源代码存储库必须在一个静态URL上公开可读。 [OSPS-QA-01.01]
    使用常见的版本控制系统(VCS),如GitHub、GitLab或Bitbucket。确保仓库可公开读取。避免重复或镜像仓库,除非有高度可见的文档说明主要来源。避免频繁更改会影响仓库URL的仓库。确保仓库是公开的。

    Repository is publicly available on GitHub.



    版本控制系统必须包含所有更改的可公开读取的记录,包括谁进行了更改以及更改的时间。 [OSPS-QA-01.02]
    使用常见的版本控制系统(VCS),如GitHub、GitLab或Bitbucket来维护可公开读取的提交历史记录。避免压缩或重写提交,以免掩盖任何提交的作者。

    Repository git metadata is publicly available on GitHub.



    当包管理系统支持时,源代码仓库必须包含一个依赖项列表,该列表涵盖直接的语言依赖项。 [OSPS-QA-02.01]
    这可以采用包管理器或语言依赖文件的形式,列举所有直接依赖项,如package.json、Gemfile或go.mod。

    Direct npm dependencies are listed in https://github.com/bnfy/blanc/blob/v1.15.0/package.json with package-lock.json recording the resolved dependency tree.



    拥有多个存储库的项目必须记录属于该项目的代码库列表。 [OSPS-QA-04.01]
    记录由项目生成并编译到发布版本中的任何附加子项目代码仓库。此文档应包括相应代码库的状态和意图。

    Project owner Anthony Loria confirmed on 2026-09-04 that https://github.com/bnfy/blanc is the only first-party Blanc code repository, including private services/apps. Desktop source, website and sync/ping/newsletter Worker sources are in this repository; no Git submodules are present. The multi-repository requirement is therefore not applicable. Reassess if any additional first-party repository is introduced.



    版本控制系统不得包含生成的可执行工件。 [OSPS-QA-05.01]
    删除项目版本控制系统中生成的可执行工件。建议在任何情况下,如果生成的可执行工件对测试等过程至关重要,应该在构建时生成,或单独存储并在特定的、有详细文档记录的管道步骤中获取。

    PR #289 merged at 3046d173cd30a5713bd0ef1b7707dc0a14d5223b removes the generated blocker seed binary from Git. npm ci/install regenerates it from pinned sources and requires an exact match with the tracked manifest before writing. See https://github.com/bnfy/blanc/blob/main/docs/blocker-seed-build.md . The reviewed complete merged tree has no native executables, shared libraries, WASM, native addons, application archives, bytecode or minified JavaScript artifacts. Reviewable generated source and media assets remain. CI, Windows/Linux packaged-payload validation and local signed macOS first-run checks passed. The owner-machine confirmation waiver is recorded in docs/release-incidents/2026-09-04-badge-seed-waiver.md; no new public release is claimed.



    版本控制系统不得包含不可审查的二进制工件。 [OSPS-QA-05.02]
    不要将任何无法审查的二进制工件添加到项目的版本控制系统中。这包括可执行应用程序二进制文件、库文件和类似的工件。这不包括资产,如图形图像、声音或音乐文件以及通常以二进制格式存储的类似内容。

    Reviewed tracked artifacts on 2026-09-04. No native executables, shared libraries, WASM, Electron archives or dependency archives were found. Media/fonts are reviewable assets with provenance in THIRD-PARTY-NOTICES.md. The Apple provisioning profile is CMS/plist-decodable and checked by scripts/preflight-mac-signing.mjs and scripts/after-sign-verify.js. The blocker seed is reproducible from pinned tracked filter/resource inputs using https://github.com/bnfy/blanc/blob/main/adblock/seed.mjs ; npm run adblock:check verified exact regeneration (108342 rules; 5404689-byte seed, hash prefix 194ddc2d204c13b9). This establishes reviewability, not the separate generated-executable criterion.



    项目文档必须包含安全联系人信息。 [OSPS-VM-02.01]
    创建一个security.md(或类似名称)文件,其中包含项目的安全联系人。

    Published SECURITY.md gives the private reporting address, information to include, response targets, and disclosure process: https://github.com/bnfy/blanc/blob/main/SECURITY.md [vulnerability_report_process]



您可以使用工具和AI系统通过简单的URL提交变更建议,例如 https://www.bestpractices.dev/zh-CN/projects/14451/choose/edit?osps_ac_01_01_status=Met&osps_ac_01_01_justification=GitHub+enforced。请参阅我们的自动化提案系统,了解具体操作方法。 该数据可在社区数据许可协议 – 许可性,版本 2.0 (CDLA-Permissive-2.0)下获取。这意味着数据接收方可以共享数据,无论是否经过修改,只要数据接收方在共享数据时提供本协议文本。请注明BANANIFY和OpenSSF最佳实践徽章贡献者。

项目徽章条目拥有者: BANANIFY.
最后更新于 2026-09-04 21:08:30 UTC, 最后更新于 2026-09-04 22:51:31 UTC。