landerox.github.io

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

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

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


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

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

        

 基本

  • 常规

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

    Personal site focused on data platforms, cloud architecture, automation, and production ai solutions.

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

 控制 24/24

  • 控制


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

    When a user attempts to read or modify a sensitive resource in the project's authoritative repository, the system MUST require the user to complete a multi-factor authentication process. [OSPS-AC-01.01] Multi-factor authentication required when accessing sensitive resources in the repository. The repository owner has GitHub 2FA enabled. Repository-sensitive operations (settings, secrets, deploy keys, rulesets, branch protection) require an authenticated session with the second factor. The project currently has no collaborators with sensitive-resource access beyond the owner.



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

    When a new collaborator is added, the version control system MUST require manual permission assignment, or restrict the collaborator permissions to the lowest available privileges by default. [OSPS-AC-02.01] New collaborators receive minimum permissions by default. The repository has no collaborators beyond the owner, GitHub's default behaviour assigns the lowest applicable role to a newly added collaborator, and should a collaborator ever be added the repository ruleset "Main Branch Protection" (id 11709250) constrains writes to the default branch independently of the per-collaborator role.



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

    When a direct commit is attempted on the project's primary branch, an enforcement mechanism MUST prevent the change from being applied. [OSPS-AC-03.01] Direct commits to the primary branch are prevented. The repository ruleset "Main Branch Protection" (id 11709250, URL https://github.com/landerox/landerox.github.io/rules/11709250) enforces a pull_request rule on the default branch main with required_approving_review_count = 1, required_status_checks (lint, build) that must pass before merge, non_fast_forward to prevent force pushes, and required_linear_history; the repository owner has admin bypass per the ruleset bypass_actors configuration as a deliberate single-maintainer flow documented in AGENTS.md hard rules.



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

    When an attempt is made to delete the project's primary branch, the version control system MUST treat this as a sensitive activity and require explicit confirmation of intent. [OSPS-AC-03.02] Primary branch deletion requires explicit confirmation. The repository ruleset "Main Branch Protection" includes the deletion rule type, which blocks deletion of the default branch main entirely; GitHub enforces this for all users, including admins (the bypass_actors setting applies only to push operations, not deletion).



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

    When a CI/CD pipeline operates on untrusted metadata, those parameters MUST be sanitized and validated prior to use in the pipeline. [OSPS-BR-01.01] CI/CD pipeline parameters from untrusted sources must be sanitised. CI workflows accept no parameters from untrusted sources: workflow_dispatch inputs are limited (none defined), pull requests from forks run with the default GitHub fork-PR permission model (read-only token, no secret exposure), and workflow security is continuously audited by zizmor in pre-commit with a strict hash-pin policy and by lint.yml CI on every push plus a daily 08:00 UTC cron.



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

    (Future criterion) When a CI/CD pipeline operates on untrusted code snapshots, it MUST prevent access to privileged CI/CD credentials and assets. [OSPS-BR-01.03] CI/CD prevents untrusted code from accessing privileged credentials. Workflow tokens follow least privilege: top-level permissions: contents: read is declared in lint.yml, deploy.yml, links.yml, quality.yml and uv-upgrade.yml; elevated permissions (pages: write, id-token: write, contents: write, pull-requests: write, security-events: write) are declared per-job rather than workflow-level; the only workflow with contents: write (uv-upgrade.yml) runs only on schedule and workflow_dispatch (maintainer-triggered), never on external PRs; fork PRs receive a read-only GITHUB_TOKEN per GitHub default policy; and zizmor continuously audits these patterns so any regression fails CI.



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

    When the project lists a URI as an official project channel, that URI MUST be exclusively delivered using encrypted channels. [OSPS-BR-03.01] Official project channels use encrypted transmission only. All project channels are HTTPS-only: the repository at https://github.com/landerox/landerox.github.io (HTTPS-only), the published site at https://landerox.com (GitHub Pages with HTTPS enforced), devcontainer image pulls from mcr.microsoft.com and ghcr.io over HTTPS, Python package retrieval from PyPI over HTTPS via uv, and tag downloads from GitHub Releases over HTTPS; no HTTP, FTP, or other unencrypted channels are used.



    当项目将URI列为官方分发渠道时,该URI必须仅通过加密渠道交付。 [OSPS-BR-03.02]
    配置项目的发布管道,仅从使用SSH或HTTPS等加密渠道进行数据传输的网站、API响应和其他服务获取数据。

    When the project lists a URI as an official distribution channel, that channel MUST be protected from adversary-in-the-middle attacks using cryptographically authenticated channels. [OSPS-BR-03.02] Distribution channels protected against man-in-the-middle attacks. Multiple layers of MITM protection are in place: GitHub Action references are SHA-pinned (sha40 + version comment) via pinact and continuously verified by zizmor's hash-pin policy; uv.lock pins each Python dependency by SHA256 hash and uv sync --frozen verifies hashes on every install; container images in.devcontainer/Dockerfile are pinned by SHA256 digest (tag@sha256:…) for both mcr.microsoft.com/devcontainers/python and ghcr.io/astral-sh/uv; and all registry endpoints use TLS with certificate verification by default.



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

    The project MUST prevent the unintentional storage of unencrypted sensitive data, such as secrets and credentials, in the version control system. [OSPS-BR-07.01] Sensitive data prevented from storage in version control. detect-secrets runs in the pre-commit suite with a curated baseline at.config/.secrets.baseline; the pre-commit suite is blocking (bypass via --no-verify is forbidden by AGENTS.md hard rules); the repository contains no API keys, deploy keys, service tokens, or cloud credentials; CI workflows use ephemeral ${{ secrets.GITHUB_TOKEN }} provided by GitHub on each run.



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

    When the project has made a release, the project documentation MUST include user guides for all basic functionality. [OSPS-DO-01.01] https://github.com/landerox/landerox.github.io/blob/main/README.md README.md documents installation (devcontainer or host with uv + just), startup (just serve / just serve-es), usage (just build), and security (SECURITY.md cross-link). Deeper internal docs live under docs/ (tooling, decisions, structure, style-guide, runbook). [documentation_basics]



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

    When the project has made a release, the project documentation MUST include a guide for reporting defects. [OSPS-DO-02.01] https://github.com/landerox/landerox.github.io/issues/new/choose Bug reports are submitted through GitHub Issues using the templates under.github/ISSUE_TEMPLATE/ (bug_report.yml and feature_request.yml). The "/issues/new/choose" page lets reporters pick the appropriate template. [report_process]



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

    While active, the project MUST have one or more mechanisms for public discussions about proposed changes and usage obstacles. [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/目录来概述贡献流程,包括提交更改的步骤以及与项目维护者互动的方式。

    While active, the project documentation MUST include an explanation of the contribution process. [OSPS-GV-03.01] https://github.com/landerox/landerox.github.io/blob/main/.github/CONTRIBUTING.md.github/CONTRIBUTING.md explains the contribution workflow: fork, branch, Conventional Commits (validated by commitizen), pre-commit hooks, and pull-request submission. [contribution]



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

    While active, the license for the source code MUST meet the OSI Open Source Definition or the FSF Free Software Definition. [OSPS-LE-02.01] The MIT license for the repository contents is approved by the Open Source Initiative (OSI).



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

    While active, the license for the released software assets MUST meet the OSI Open Source Definition or the FSF Free Software Definition. [OSPS-LE-02.02] The repository uses a dual-license model: source code (configs, workflows, scripts) is licensed under the MIT License via LICENSE at repo root; site content (Markdown under content/, prose, images) is licensed under Creative Commons Attribution 4.0 International via LICENSE-CONTENT. Both are FLOSS licenses for their respective scopes. Boundary documented in docs/decisions.md (Licensing Boundary). [floss_license]



    活跃期间,源代码的许可证必须保存在相应仓库的LICENSE文件、COPYING文件或LICENSE/目录中。 [OSPS-LE-03.01]
    将项目的源代码许可证包含在项目的LICENSE文件、COPYING文件或LICENSE/目录中,以提供许可条款的可见性和清晰性。文件名可以有扩展名。如果项目有多个仓库,请确保每个仓库都包含许可证文件。

    While active, the license for the source code MUST be maintained in the corresponding repository's LICENSE file, COPYING file, or LICENSE/ directory. [OSPS-LE-03.01] License file found in repository.



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

    While active, the license for the released software assets MUST be included in the released source code, or in a LICENSE file, COPYING file, or LICENSE/ directory alongside the corresponding release assets. [OSPS-LE-03.02] https://github.com/landerox/landerox.github.io/blob/main/LICENSE LICENSE (MIT, source code) is at the repository root in the standard GitHub-recognized location. LICENSE-CONTENT (CC-BY-4.0, site content) is also at the repository root for visibility. [license_location]



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

    While active, the project's source code repository MUST be publicly readable at a static URL. [OSPS-QA-01.01] Public repository accessible at a static URL. https://github.com/landerox/landerox.github.io is owned by an active GitHub account, has public visibility, requires no authentication to clone or browse, and the URL has been stable since project inception.



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

    The version control system MUST contain a publicly readable record of all changes made, who made the changes, and when the changes were made. [OSPS-QA-01.02] VCS maintains public change history with authorship. Every commit records author name, email, timestamp and a unique SHA, visible at https://github.com/landerox/landerox.github.io/commits/main; Conventional Commits format (validated by commitizen in the commit-msg hook) adds semantic context; CHANGELOG.md provides hand-curated release notes per Keep a Changelog 1.1.0.



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

    When the package management system supports it, the source code repository MUST contain a dependency list that accounts for the direct language dependencies. [OSPS-QA-02.01] Dependency list for direct language dependencies. Direct dependencies are declared explicitly: Python runtime in pyproject.toml under [project] dependencies and [dependency-groups] dev with resolved transitive deps and SHA256 hashes in uv.lock; GitHub Actions in.github/workflows/*.yml where each uses: line references the action by SHA40 + version comment via pinact; devcontainer tools in.devcontainer/Dockerfile as ARGs (UV_VERSION, LYCHEE_VERSION, PINACT_VERSION) with base images pinned by tag + SHA256 digest.



    活跃期间,项目文档必须包含被视为子项目的任何代码库的列表。 [OSPS-QA-04.01]
    记录由项目生成并编译到发布版本中的任何附加子项目代码仓库。此文档应包括相应代码库的状态和意图。

    Projects with multiple repositories MUST document a list of codebases that are part of the project. [OSPS-QA-04.01] Multi-repository projects document all codebases. N/A — this is a single-repository project, there are no sister or sub repositories, and all project code, configuration, content and documentation live in this single repository.



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

    While active, the version control system MUST NOT contain generated executable artifacts. [OSPS-QA-05.01] Generated executables excluded from version control. The repository contains no compiled executables, no.so/.dll/.exe, no Python.pyc/.pyo, no build artefacts;.gitignore excludes build output (site/), Python caches (.venv/, pycache/, *.py[cod],.pre-commit-cache/), tooling caches (.cache/,.mypy_cache/,.pytest_cache/,.ruff_cache/), IDE/editor files (.idea/,.vscode/, *.swp), OS artefacts (.DS_Store, Thumbs.db), and the devcontainer per-host lockfile (.devcontainer/devcontainer-lock.json).



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

    While active, the version control system MUST NOT contain unreviewable binary artifacts. [OSPS-QA-05.02] Unreviewable binary artifacts excluded. The repository contains no unreviewable binary artefacts; the only binary files present are essential static site assets — all human-inspectable and necessary for site rendering: 4 WOFF2 font files (MesloLGM Nerd Font Propo, Regular and Bold for EN and ES, subsetted from upstream TTF under the SIL OFL license with documented bump procedure in docs/tooling.md), favicon.svg (vector, inspectable), logo.svg (vector), and one profile.webp per locale (human portrait photograph).



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

    While active, the project documentation MUST contain security contacts. [OSPS-VM-02.01] https://github.com/landerox/landerox.github.io/blob/main/.github/SECURITY.md.github/SECURITY.md documents the vulnerability reporting workflow: use GitHub Private Vulnerability Reporting (Security tab > Advisories > Report a vulnerability). It also defines a disclosure policy: 48-hour acknowledgement, 7-day fix-ETA estimate, notification on resolution. [vulnerability_report_process]



该数据可在社区数据许可协议 – 许可性,版本 2.0 (CDLA-Permissive-2.0)下获取。这意味着数据接收方可以共享数据,无论是否经过修改,只要数据接收方在共享数据时提供本协议文本。请注明Fernando Landero和OpenSSF最佳实践徽章贡献者。

项目徽章条目拥有者: Fernando Landero.
最后更新于 2026-05-14 12:43:46 UTC, 最后更新于 2026-05-27 22:45:22 UTC。 最后在 2026-05-14 14:35:01 UTC 获得通过徽章。