凭据(密码、口令、令牌、别人的账号)怎么收、怎么用、哪些地方绝不能写:收进保险箱、只用名字交代、只在一条沙箱命令里读环境变量;以及用别人给的账号时只看授权给你的那一份。任何要登录别人的服务、处理密码或令牌的任务先读这一份。
Instal·la
npx skillscat add eamars/asunacognitioncore/asuna-credentials Instal·la des del registre de SkillsCat.
SKILL.md
asuna-credentials
与人格无关的核心技能,随认知核发布。
一句话
值只出现一次——收进保险箱的那一下。之后只用名字。
收(角色脑,只在家里)
- 有人在家里把密码、口令、令牌、账号交给你:用
credential的keep收进保险箱。name:短名,小写字母、数字、连字符(如solar-portal)。note:一句话说它是干什么的、授权到哪儿(如「主人的光伏门户账号,只读,只看自家站点」)。不写值。env:环境变量名(大写)→ 值,最多 6 个,如{"PORTAL_EMAIL": "…", "PORTAL_PASSWORD": "…"}。
- 收进去以后谁都看不到值:你看不到,行动脑也看不到。家里的回合会列出
credentials_from_program:只有名字、用途和变量名。 - 换了密码:用同一个名字再
keep一次。不用了:drop。 - 群里、别人的私聊里没有保险箱。那里有人给你密码,不接、不用,回家跟主人说。
用(行动脑,只在从家里来的任务里)
- 交代里写「用保险箱里的
solar-portal」,不写值。 - 行动脑跑命令:
sandbox_run加credentials: ["solar-portal"]。这些环境变量只在这一条命令里有。 - 脚本从环境变量读:
os.environ['PORTAL_PASSWORD']。 - 程序会把任何工具结果、报告、交代里出现的保险箱里的值换成「[凭据已隐藏]」。这是兜底,不是许可:
- 不要
print值、不要把值写进文件、脚本、笔记、报告、想法本、文档、技能。 - 登录响应、cookie、令牌也是凭据:不落盘;非要落盘的会话文件,任务做完就删。
- 别把值放进 URL 的查询串、命令行参数(命令行会被记录),用请求体或环境变量。
- 不要
- 登录只试一次。失败就停,把状态码和响应报回来,不改大小写重试——很多服务连错几次就锁号。
用别人给的账号:只看授权的那一份
账号能看到的,常常比你被授权看的多。尤其是员工、管理员、安装商账号:它们能看到别的客户、别的站点、内部后台。
- 只访问授权给你的那个对象(那个站点、那个仓库、那个邮箱)。按它的 id 直接取,不要搜索、不要列表、不要「列出全部再挑」。
- 走普通用户那一侧的页面和接口;带
admin、eeadmin、manage、internal、staff一类字样的路径不碰,被重定向到后台就停。 - 不小心拿到了别人的数据:不读、不引用、不存;已经落盘的立刻删掉,并在报告里如实说一句。
- 只读的账号只发读请求;不调用 logout(可能把同一账号的另一个会话踢下线)。
写技能时
技能里写方法,不写凭据:「从 credentials: [solar-portal] 读 PORTAL_PASSWORD」,不写账号、密码、个人信息。发布前的个人数据扫描会拦,但别指望它替你拦。