1 个不稳定版本
0.1.0 | 2022年3月27日 |
---|
#8 in #到期
13KB
205 行
从上游分支,如果您有兴趣使用它,请使用 上游版本。
lib.rs
:
security.txt
此库定义了一个宏,旨在为希望联系 Solana 智能合约作者的网络安全研究人员提供易于解析的信息。它受到了 https://securitytxt.org/ 的启发。
示例
security_txt! {
name: "Example",
project_url: "http://example.com",
source_code: "https://github.com/example/example",
expiry: "2042-01-01",
preferred_languages: "en,de",
contacts: "email:[email protected],discord:example#1234",
encryption: "
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: Alice's OpenPGP certificate
Comment: https://www.ietf.org/id/draft-bre-openpgp-samples-01.html
mDMEXEcE6RYJKwYBBAHaRw8BAQdArjWwk3FAqyiFbFBKT4TzXcVBqPTB3gmzlC/U
b7O1u120JkFsaWNlIExvdmVsYWNlIDxhbGljZUBvcGVucGdwLmV4YW1wbGU+iJAE
ExYIADgCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQTrhbtfozp14V6UTmPy
MVUMT0fjjgUCXaWfOgAKCRDyMVUMT0fjjukrAPoDnHBSogOmsHOsd9qGsiZpgRnO
dypvbm+QtXZqth9rvwD9HcDC0tC+PHAsO7OTh1S1TC9RiJsvawAfCPaQZoed8gK4
OARcRwTpEgorBgEEAZdVAQUBAQdAQv8GIa2rSTzgqbXCpDDYMiKRVitCsy203x3s
E9+eviIDAQgHiHgEGBYIACAWIQTrhbtfozp14V6UTmPyMVUMT0fjjgUCXEcE6QIb
DAAKCRDyMVUMT0fjjlnQAQDFHUs6TIcxrNTtEZFjUFm1M0PJ1Dng/cDW4xN80fsn
0QEA22Kr7VkCjeAEC08VSTeV+QFsmz55/lntWkwYWhmvOgE=
=iIGO
-----END PGP PUBLIC KEY BLOCK-----
",
acknowledgements: "
The following hackers could've stolen all our money but didn't:
- Neodyme
",
policy: "https://github.com/solana-labs/solana/blob/master/SECURITY.md"
}
格式
所有值都需要是可能不包含空字节的字符串字面量。如果二进制文件中包含 security.txt 分隔符(如 =======BEGIN SECURITY.TXT V1=======\0
和 =======END SECURITY.TXT V1=======\0
),则天真解析器可能会失败。
以下字段受支持,其中一些是 security.txt 被认为是有效所需。
name
(必需):项目的名称。project_url
(必需):项目主页/应用程序的 URL。source_code
(可选):项目源代码的 URL。expiry
(可选):security.txt 将过期的日期。格式为 YYYY-MM-DD。preferred_languages
(必需):首选语言的逗号分隔列表。contacts
(必填): 以逗号分隔的联系人信息列表,格式为<contact type>:<contact information>
。可能的联系人类型包括email
、discord
、telegram
、twitter
、link
和other
。encryption
(可选): PGP 公钥块(或类似)或其链接acknowledgements
(可选): 链接或 Markdown 文档,包含对过去发现项目漏洞的安全研究人员的致谢。policy
(必填): 链接或 Markdown 文档,描述项目的安全策略。这应说明您的项目提供哪些赏金以及提供赏金的条件。
工作原理
宏将一个 &str
插入到生成的 ELF 文件的 .security.txt
部分。由于 Rust 字符串的工作方式,这是一个指向实际字符串的指针和长度的元组。
宏构建的字符串以起始标记 =======BEGIN SECURITY.TXT V1=======\0
开头,以结束标记 =======END SECURITY.TXT V1=======\0
结尾。中间是一系列以空字节分隔的字符串,每两个字符串形成一个键值对。
依赖关系
~0.6–1.2MB
~24K SLoC