应用安全【免费下载链接】CheatSheetSeriesThe OWASP Cheat Sheet Series was created to provide a concise collection of high value information on specific application security topics.项目地址https://gitcode.com/gh_mirrors/ch/CheatSheetSeries点击查看免费下载本篇指南围绕 OWASP Cheat Sheet Series 仓库中的 GUIDELINE.mdCheat Sheet Writing Guide展开系统讲解面向开发者撰写安全速查表Cheat Sheet的完整方法论包括文档定位与质量标准、模板与文件命名规范、章节结构与写作技巧、Markdown 格式要求以及配合 CONTRIBUTING.md、templates/New_CheatSheet.md 和仓库内置脚本、配置完成的提交前验证流程。读完本文你将掌握一套可复用的速查表写作框架并能在本仓库中实际创建、校验并提交一篇符合 OWASP 质量标准的技术文档。一、为什么需要一份写作指南速查表的定位与质量底线OWASP Cheat Sheet Series 的目标是以简洁的形式提供针对特定应用安全主题的高价值信息。为了让上百篇速查表保持一致的风格与水准仓库在根目录维护了 GUIDELINE.md 作为内容创作规范并将贡献流程与写作规范分离流程、环境搭建和 Pull Request 规则见 CONTRIBUTING.md而本文档专管如何把内容写好。从 GUIDELINE.md 可以提炼出四条贯穿全文的质量底线写给开发者而非安全专家默认读者每天都在写代码但不具备深厚的安全背景因此不应预设读者理解攻击原理。实用优先于理论可立即落地的建议优于学术讨论。简洁速查表是参考材料直击要点不铺陈背景。有明确主张直接推荐具体做法而不是罗列所有可选项——开发者想知道该做什么而不是自己去权衡利弊。这四条原则决定了速查表的文体结论前置、行动导向、避免含糊的视情况而定。仓库中 cheatsheets/Authentication_Cheat_Sheet.md 的 Introduction 就是典型范例——用几句话讲清 Authentication 是什么、为什么重要、读者能从中获得什么然后立刻进入## Authentication General Guidelines等实操小节。二、从模板起步文件命名与创建命令模板位置仓库在 templates/New_CheatSheet.md 提供了标准模板其骨架为H1 标题占位符写作# Topic Cheat Sheet提交前需替换为实际主题并移除说明行。Introduction面向不了解该主题的读者给出高层概述可附外部资料指针但至少要能让读者继续读下去允许在任意位置插入示意图但需确保不侵犯源文件版权。Main Sections主章节依内容而定一般不超过半打6 个二级章节必要时用三级小节细分。References收录未在正文内联引用的其他有用资源。模板中还明确要求提交 Pull Request 前必须移除其中包含的 Mandatory Markdown Format Rules 提示块该块指向仓库的 editor validation policy 与 conversion rules 两条规则。创建命令与命名规则GUIDELINE.md 给出的起步命令是cp templates/New_CheatSheet.md cheatsheets/Your_Topic_Cheat_Sheet.md文件命名必须遵守三条规则仅使用字母、数字、连字符-与下划线_必须以_Cheat_Sheet.md结尾合法示例API_Rate_Limiting_Cheat_Sheet.md。这与 CONTRIBUTING.md 的 Style Guide 相互印证Cheat Sheet filenames should only contain letters, numbers, hyphens and underscores。命名的规范性直接关系到后续自动化处理——从 scripts/Generate_CheatSheets_TOC.py 的源码可以看出目录生成脚本正是通过cheatsheet.replace(_, ).replace(.md, ).replace(Cheat Sheet, )这类字符串处理把Authentication_Cheat_Sheet.md自动转成页面上的显示名 Authentication因此文件名中的下划线分割约定是整个发布管线的依赖项。三、章节结构规范三段式骨架与示例参照GUIDELINE.md 规定每篇速查表遵循如下结构# Your Topic Cheat Sheet ## Introduction A brief overview: what is this topic, why does it matter for security, and who should read this cheat sheet. ## Main Sections Organize your advice into clear sections. Most cheat sheets have 3-6 top-level sections covering different aspects of the topic. ## References Links to external resources, standards, or related cheat sheets.Introduction 的写法Introduction 应为 24 句话说明速查表覆盖什么、为什么重要。指南直接引用 Authentication Cheat Sheet 的真实引言作为示范Authenticationis the process of verifying that an individual, entity, or website is whom it claims to be. This cheat sheet provides guidance on implementing authentication in web applications.短小、清晰、交代后续内容这就是达标的样子。同类示例还可参照 Input Validation Cheat Sheet 的 Introduction——一句话点明文章目标随即进入 Goals 与实现策略。Main Sections 的组织参照指南建议参考三篇既有速查表的不同组织风格Authentication Cheat Sheet按关切点组织passwords、MFA、logging 等Docker Security Cheat Sheet按编号规则组织Input Validation Cheat Sheet按技术手段组织。这三种模式说明没有唯一正确的目录结构但每个二级章节都应聚焦一个明确主题复杂区域用 H3 细分。References 的边界参考文献应链接权威外部资源RFC、NIST 出版物、OWASP 标准、相关速查表。关键约束是不要重复其他速查表的内容改为链接过去。这也与 CONTRIBUTING.md 的保持聚焦要求一致——如果某个关联主题越写越长说明它应该单独成篇。四、写作技巧架构优先、善用表格、推荐可落地以架构指引为主而非语言特定代码这是 GUIDELINE.md 中最核心的一条原则速查表应优先呈现架构模式、设计原则与安全决策而不是语言特定的代码样例。理由有二架构指引跨语言、跨框架通用寿命更长脱离上下文的代码片段往往并不完全安全且需要持续维护。指南给出的对照示例非常直观。推荐写法架构指引Use a dedicated password hashing algorithm (Argon2id, bcrypt, or scrypt) with appropriate cost factors. Never use general-purpose hash functions like SHA-256 for password storage. Delegate hashing to a well-maintained library rather than implementing it yourself. Store the algorithm identifier and cost parameters alongside the hash so you can upgrade without invalidating existing passwords.不推荐写法语言特定代码String hash BCrypt.hashpw(password, BCrypt.gensalt(12));代码片段看似正确却省略了生产环境中至关重要的错误处理、输入校验与上下文。架构指引则帮助开发者在任何语言或框架下做出正确决策。这条原则在 CONTRIBUTING.md 中被再次强调Describingwhatto do andwhyis more durable and broadly useful than showinghowin a single language.何时才使用代码示例代码示例仅在用文字难以说清的概念如特定 API 调用模式、配置语法时才合适。使用时有四条纪律保持短小、纯粹示意不伪装成生产级代码用伪代码或单一通用语言避免多语言各给一份明确说明示例仅作演示完整用法应查阅所在框架的官方文档给代码块标注恰当语言以启用语法高亮如php。用表格做对照比较表格非常适合并排展示安全与不安全做法。指南给出的示例ApproachSecureInsecurePassword storagebcrypt/Argon2 hashMD5/SHA-1 hashSession tokensCryptographically randomSequential IDsError messagesGeneric messageStack trace to user指南推荐用 tablesgenerator.com 生成 Markdown 表格——这与 CONTRIBUTING.md 的 Style Guide 完全一致。推荐好实践而非最佳实践能真正遵循的 good 实践远好于完全不可行的 best 实践。如果某项建议需要专用工具、重大基础设施改造或深厚专家经验必须明说并尽量给出更简单的替代方案。这一务实取向同样体现在 CONTRIBUTING.mdIt is much better to givegoodpractices that can actually be followed thanbestpractices that are completely impractical.用引用支撑安全主张安全建议必须链接权威来源且优先使用行内链接inline links例如Use Argon2id for password hashing as recommended by [OWASP](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html) and [NIST SP 800-63B](https://pages.nist.gov/800-63-3/sp800-63b.html).保持聚焦一篇速查表只深挖一个主题。如果某个关联话题越写越多它大概率值得单独成篇——链接到已有速查表而不是复制其内容。仓库中 cheatsheets/ 目录下 120 篇速查表的目录划分本身就是这条原则的产物认证、会话管理、密码存储、找回密码等相互引用如 Authentication Cheat Sheet 在正文中多次指向 Session Management Cheat Sheet、Password Storage Cheat Sheet、Forgot Password Cheat Sheet各篇只写本领域。五、必须避开的常见错误GUIDELINE.md 列出了五类高频问题写给安全专家如果读者需要安全背景才能看懂就说明需要简化。过于抽象Validate all input 毫无帮助要描述具体的校验策略及它防护的攻击类型。可对比 Input Validation Cheat Sheet 中 Allowlist vs Denylist、Unicode 自由文本校验等可操作的章节。覆盖过广聚焦单主题的速查表优于试图包罗万象的长篇大论。只罗列不推荐不要只摆选项要告诉读者用哪个、为什么。跳过为什么简要解释做法背后的原因能帮助开发者记住并排定优先级。六、配套 Markdown 格式规范与语言要求CONTRIBUTING.md 给出了与写作指南配套的格式细则是提交前必须对照的检查清单使用 python-markdown 支持的语法加粗文本用**bold**列表与嵌套列表统一使用-速查表中避免使用 HTML坚持纯 Markdown引用他人文章使用引用语法 Quote here代码围栏中出现{{或}}时要在两个花括号间加空格写成{ {所有资源放入assets目录图片用ALTERNATE_NAME应为 PNG 格式其他类型文件用ALTERNATE_NAME语法链接应行内书写并带有效描述如[Description](https://example.org)并尽量使用 HTTPS结构上以速查表名称作为 H1第一个章节必须是简介目录由站点自动生成无需手写标题后留空行语言使用美式英语提交前拼写检查尽量使用简单语言照顾非母语读者首次出现非通用缩写时给出全称HTTP、URL 这类极常见缩写除外。七、提交前的验证Lint、死链检查与自动化管线本地环境与 Lint 检查CONTRIBUTING.md 描述了标准开发环境安装 Visual Studio Code 与 vscode-markdownlint 插件然后通过File Open Workspace...打开仓库根目录的 Project.code-workspace 即可开始贡献。提交前需确认新建或修改的 Markdown 文件在 VSCode 底部状态栏没有 linter 警告插件告警界面截图见 assets/README_PluginWarningUI.png。仓库根目录的 package.json 中还内置了两条更严格的 lint 命令npm run lint-markdown # markdownlint ./ -c .markdownlint.json --ignore node_modules --ignore cheatsheets_excluded npm run lint-terminology # textlint ./cheatsheets/ npm test # 依次执行 lint-markdown 与 lint-terminology死链检查使用 markdown-link-check 插件验证所有新增或修改的链接安装 Node.js 与 npm全局安装验证插件npm install -g markdown-link-check从仓库根目录对目标文件执行markdown-link-check -c .markdownlinkcheck.json [MD_FILE]CONTRIBUTING.md 给出了真实运行输出示例绿勾表示链接有效红叉标记死链$ markdown-link-check -c .markdownlinkcheck.json cheatsheets/Transaction_Authorization_Cheat_Sheet.md FILE: cheatsheets/Transaction_Authorization_Cheat_Sheet.md [✓] https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm [✓] https://en.wikipedia.org/wiki/Chip_Authentication_Program [✓] http://www.cl.cam.ac.uk/~sjm217/papers/fc09optimised.pdf ...仓库根目录的 markdown-link-check-config.json 即为该项目实际使用的配置通过ignorePatterns豁免以^/开头、bundle.zip、News.xml以及部分已知不稳定域名如 developer.android.com、csrc.nist.gov 等的链接并通过httpHeaders为所有 http/https 请求附加真实浏览器 User-Agent 以规避反爬。package.json中的link-check脚本则以find cheatsheets -name \*.md批量对所有速查表执行该检查。站点构建与内容索引的自动化写作指南本身虽不涉及构建但仓库的自动化管线恰好体现了格式规范如何被强制执行scripts/Update_CheatSheets_Index.py 扫描../cheatsheets下全部 Markdown 文件按首字母分组生成根目录的 Index.md并通过扫描代码围栏标记如java自动统计各速查表提供了哪些语言的代码片段标记语言清单见脚本中的markers列表在索引中渲染对应的语言图标assets 下的Index_*.svg。scripts/Generate_CheatSheets_TOC.py 生成 GitBook 离线站点所需的 TOC.md 汇总页。scripts/Generate_Site.sh 与 scripts/Generate_Site_mkDocs.sh 分别提供 GitBook 与 MkDocs 两条站点生成路径mkdocs.yml 将docs_dir指向cheatsheets/并启用 Material 主题与搜索插件Makefile 提供generate-site含 Python 依赖安装与servepython -m http.server -d generated/site端口 8000两条便捷入口。这意味着只要文件名与 Markdown 结构符合规范新速查表就会被自动纳入索引、目录与站点——写作规范与工具链是闭环的。八、AI 使用声明与贡献边界CONTRIBUTING.md 对生成式 AI 参与内容有明确约束可用 AI 做摘要、改进建议与代码示例但生成内容往往generalised and verbose必须仔细审阅若确有用 AI 的必要必须在 Pull Request 中声明否则贡献可能被关闭或删除所有 issue 与 PR 必须使用官方模板否则会被视为未经规范的 AI 生成内容。这一条与写作指南简洁、有主张、给 why的要求互为表里。九、快速参考表GUIDELINE.md 以表格收尾汇总了写作过程中需要的全部仓库位置WhatWhereTemplate for new cheat sheetstemplates/New_CheatSheet.mdExisting cheat sheetscheatsheets/ directoryDraft cheat sheetscheatsheets_draft/ directoryImage assetsassets/ directoryContribution process and style guideCONTRIBUTING.mdPublished sitecheatsheetseries.owasp.org结语把 GUIDELINE.md 与 CONTRIBUTING.md、templates/New_CheatSheet.md 及仓库脚本、配置对照阅读可以完整还原 OWASP Cheat Sheet Series 的写作闭环面向开发者、主张明确、架构优先、聚焦单一主题是内容标准三段式骨架、命名规则、纯 Markdown 格式是结构标准markdownlint、textlint、markdown-link-check是质量门禁索引与站点脚本则保证符合规范的文档自动进入发布管线。按此流程任何人都能为这一高价值安全知识库贡献一篇合格甚至优秀的速查表。赞分享应用安全【免费下载链接】CheatSheetSeriesThe OWASP Cheat Sheet Series was created to provide a concise collection of high value information on specific application security topics.项目地址https://gitcode.com/gh_mirrors/ch/CheatSheetSeries点击查看免费下载相关推荐最全安全速查表OWASP Cheat Sheet Series从PHP到Java的跨平台防护最全安全速查表OWASP Cheat Sheet Series从PHP到Java的跨平台防护 想要快速掌握应用安全防护知识OWASP Cheat Sheet应用安全如何快速掌握OWASP Cheat Sheet Series安全编码规范的终极指南如何快速掌握OWASP Cheat Sheet Series安全编码规范的终极指南 OWASP Cheat Sheet Series是一个专为开发者和安全专家应用安全新范式安全开发OWASP Cheat Sheet Series安全编码的自动化检查终极指南新范式安全开发OWASP Cheat Sheet Series安全编码的自动化检查终极指南 OWASP Cheat Sheet Series是一个开源项目旨应用安全上一篇ESP固件烧录实战esptool核心功能深度解析与高效应用指南下一篇Sunshine游戏串流服务器高性能自托管解决方案的技术实现与优化指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考